BG MVC Model View Controller eğitim serisi yayında...

Ana sayfa > Programlama > C Programlama > C örnek kodlar > c_ornek00031

C örnek kodlar

İki tarih değerini karşılaştırma (<time.h> fonksiyonlarını kullanarak)

Aşağıdaki program, bg_datecmp() fonksiyonu içinde <time.h> fonksiyonlarını kullanarak iki tarih değerini karşılaştırır. Fonksiyon, ilk tarih değeri ikincisinden büyük ise 1 değerini, küçük ise -1 değerini ve iki değer birbirine eşit ise sıfır değerini geri döndürür.


#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <locale.h>

int bg_datecmp (const char *date1, const char *date2);

int main(void)
{
  int id;
  // Türkçe karakterler için
  setlocale(LC_ALL, "Turkish");

  id = bg_datecmp ("12.04.2020", "09.02.2020");

  if (id==1) printf("İlk tarih daha büyüktür!");
  else if (id==-1) printf("İkinci tarih daha büyüktür!");
  else printf("İki tarih birbirine eşittir!");

  return 0;
}

int bg_datecmp (const char *date1, const char *date2)
{
  time_t time_1970, time01, time02;
  struct tm *tmd;
  char cdizi[5];
  double dif;

  time_1970 = time(NULL);
  tmd = localtime(&time_1970);

  // İlk tarih
  sprintf(cdizi, "%c%c", date1[0], date1[1]);
  tmd->tm_mday = atoi(cdizi);
  sprintf(cdizi, "%c%c", date1[3], date1[4]);
  tmd->tm_mon = atoi(cdizi)-1;
  sprintf(cdizi, "%c%c%c%c", date1[6], date1[7], date1[8], date1[9]);
  tmd->tm_year = atoi(cdizi)-1900;
  time01 = mktime(tmd);

  // İkinci tarih
  sprintf(cdizi, "%c%c", date2[0], date2[1]);
  tmd->tm_mday = atoi(cdizi);
  sprintf(cdizi, "%c%c", date2[3], date2[4]);
  tmd->tm_mon = atoi(cdizi)-1;
  sprintf(cdizi, "%c%c%c%c", date2[6], date2[7], date2[8], date2[9]);
  tmd->tm_year = atoi(cdizi)-1900;
  time02 = mktime(tmd);

  dif = difftime(time01, time02);

  if(dif > 0) return 1;
  else if(dif == 0) return 0;
  else return -1;
}

Yukarıdaki örnekte, program aşağıdaki satırları ekrana yazar:

İlk tarih daha büyüktür!