Hujan hujan Surabaya kita yang adem setelah diguyur air hujan, holla guys ? Kali ini kita belajar struct, struct adalah suatu variabel yang terdiri dari pointer, array yang dipadukan dengan fungsi jadi struktur dapat memuat integer, float , char dan sebagainya

program penghitung jumlah hari

#include<stdio.h>
struct tgl {
int d,m,y;};
int bulann [13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
struct tgl skrg;
static char *bulan[]={
“salah”,”januari”,”februari”,”maret”,”april”,”mei”,”juni”,”juli”,”agustus”,”september”,”oktober”,”nopember”,”desember”};
void tanggalanbesok(struct tgl bsk,int tambah)
{ bsk.d=bsk.d+tambah;
while (bsk.d>bulann[bsk.m]){
if (bsk.y%4==0)
bulann[2]=29;
else bulann[2]=28;
bsk.d=bsk.d-bulann[bsk.m];
bsk.m=bsk.m+1;
if (bsk.m>12)
{bsk.m=bsk.m-12;bsk.y=bsk.y+1;}}
printf (“\n%d-%d-%d”,bsk.d,bsk.m,bsk.y);
printf(“\n%d %s %d”,bsk.d,bulan[bsk.m],bsk.y);
}

int main()
{
printf(“Tanggal sekarang adalah “);
int tambah;
mulai:
printf (“masukan tanggal : (dd mm yy)\n”);
scanf(“%d %d %d”,&skrg.d,&skrg.m,&skrg.y);
if(skrg.y%4==0)
bulann[2]=29;
else bulann[2]=28;
if(skrg.d>bulann[skrg.m]||skrg.m>12||skrg.m<1){
printf(“\nForamat salah ulang\n”);

goto mulai;}
printf(“%d %s %d”,skrg.d,bulan[skrg.m],skrg.y);
printf (“\nmasukan berapa jumlah hari berikutnya : “);
scanf(“%d”,&tambah);
tanggalanbesok(skrg,tambah);

}

program selisih hari

int main()
{
struct tgl {
int d,m,y;
int bulann [13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
char *bulan[]={
“tidak bernilai”,”januari”,”februari”,”maret”,”april”,”mei”,”juni”,”juli”,”agustus”,”september”,”oktober”,”nopember”,”desember”};
struct tgl skrg;
struct tgl nanti;
int selisih=0;
mulai:
printf (“masukan tanggal sekarang: (dd mm yy)\n”);
scanf(“%d %d %d”,&skrg.d,&skrg.m,&skrg.y);
if(skrg.y%4==0)
bulann[2]=29;
else bulann[2]=28;
if(skrg.d>bulann[skrg.m]||skrg.m>12||skrg.m<1){
printf(“\nForamat salah ulang\n”);
goto mulai;}
printf(“\n%d %s %d”,skrg.d,bulan[skrg.m],skrg.y);
ulang:
printf (“\nmasukan tanggal nanti : (dd mm yy)\n”);
scanf(“%d %d %d”,&nanti.d,&nanti.m,&nanti.y);
if(nanti.y%4==0)
bulann[2]=29;
else bulann[2]=28;
if(nanti.d>bulann[nanti.m]||nanti.m>12||nanti.m<1){
printf(“\nForamat salah ulang\n”);
goto ulang;}
printf(“\n%d %s %d\n”,nanti.d,bulan[nanti.m],nanti.y);

while(skrg.d!=nanti.d||skrg.m!=nanti.m||skrg.y!=nanti.y)
{
if(skrg.y%4==0)
bulann[2]=29;
else bulann[2]=28;
skrg.d=skrg.d+1;
selisih++;
if(skrg.d>bulann[skrg.m]){
skrg.m=skrg.m+1;
skrg.d=1;}
if(skrg.m==13){
skrg.m=skrg.m-12;
skrg.y=skrg.y+1;}
}
printf(“Selisihnya adalah “);
printf(“%d hari “,selisih);
getch();
}

program selisih waktu

#include<stdio.h>
struct waktu {
int d,m,j;
struct waktu selisih(skrg,nanti)
struct waktu skrg,waktu nanti;
{
struct waktu selisihnya;
if(skrg.d>nanti.d){
nanti.d=nanti.d+60;
nanti.m=nanti.m-1;}
selisihnya.d=nanti.d-skrg.d;
if(skrg.m>nanti.m){
nanti.m=nanti.m+60;
nanti.j=nanti.j-1;}
selisihnya.m=nanti.m-skrg.m;
selisihnya.j=nanti.j-skrg.j;
return(selisihnya);
}

void main()
{
struct waktu sekarang1;
struct waktu nanti;
struct waktu beda;
printf(“Masukan waktu sekarang j:m:d\n”);
scanf(“%d%d%d”,&sekarang1.j,&sekarang1.m,&sekarang1.d);
printf(“Masukan waktu nanti j:m:d\n”);
scanf(“%d%d%d”,&nanti.j,&nanti.m,&later.d);
beda=selisih(sekarang1,later);
printf(“Selisih waktunya\n”);
printf(“%d jam:%d menit :%d detik”,beda.j,beda.m,beda.d);
}