listing program selisih-hari versi 1


/* ADA YANG MAU SILAHKAN COPAS AJA */
/* Menentukan selisih berapa hari antara 2 tanggal */
/* facebook/Triyono Siak Cyty */
/* gratis = tergugah.blogspot.com */
/* Teknik Elektro UIN Prodi Telekomunikasi*/
/* PROGRAM Selisih_hari */
#include <stdio.h>
void Konversi(long int selisih);

main()
{
    /* DEKLARASI */
    typedef struct {int yy, mm, dd;} hari;
    hari T1, T2;
    int i;
    long int selisih_hari;

    /* ALGORITMA */
    printf("Ketikkan hari pertama (dd/mm/yy): "); scanf("%d / %d / %d",&T1.dd, &T1.mm, &T1.yy);
    printf("Ketikkan hari kedua   (dd/mm/yy): "); scanf("%d / %d / %d",&T2.dd, &T2.mm, &T2.yy);

    selisih_hari = 0;

    if (T1.yy < T2.yy)
    {
 selisih_hari = (30 - T1.dd);
 for (i=T1.mm-1; i<=30; i++)
selisih_hari = selisih_hari + 30;

 for (i=1; i<=T2.mm-2; i++)
selisih_hari = selisih_hari + 12;

 for (i=T1.yy+1; i<T2.yy; i++)
selisih_hari = selisih_hari + 365;

 selisih_hari = selisih_hari + T2.dd;
 Konversi(selisih_hari);
    }
    else if (T1.yy == T2.yy && T1.mm <= T2.mm)
    {                                    
 if (T1.mm < T2.mm)
 {
selisih_hari = (30 - T1.dd);
  for (i=T1.mm+1; i<=T2.mm-1; i++)
selisih_hari = selisih_hari + 30;
selisih_hari = selisih_hari +  T2.dd;
  Konversi(selisih_hari);
 }

 else if (T1.mm == T2.mm && T1.dd <= T2.dd)
 {
  selisih_hari = T2.dd - T1.dd;
  Konversi(selisih_hari);
 }
 else printf ("Data yang Anda masukkan salah, T2 harus setelah T1 \n");
    }

    else printf ("Data yang Anda masukkan salah, T2 harus setelah T1 \n");
}
     
void Konversi(long int selisih)
/* konversi selisih_hari */
{
  long int T1, T2, sisa;
  T1=selisih % 365;
  sisa=sisa/365;
  T2=selisih % 365;
  sisa=sisa/365;
  printf ("Selisih hari T1 dan T2 adalah   : %ld hari", T1, T2);
}

1 comment: