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

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

C örnek kodlar

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

Aşağıdaki program, bg_datecmp() fonksiyonunu 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 <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");

  // Tarih değerleri gg.aa.yyyy (dd.mm.yyyy) veya gg/aa/yyyy (dd/mm/yyyy) formatında girilmelidir.
  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)
{
  char cdizi01[11], cdizi02[11];

  sprintf(cdizi01, "%c%c%c%c%c%c%c%c", date1[6], date1[7], date1[8], date1[9], date1[3], date1[4], date1[0], date1[1]);
  sprintf(cdizi02, "%c%c%c%c%c%c%c%c", date2[6], date2[7], date2[8], date2[9], date2[3], date2[4], date2[0], date2[1]);

  if(atol(cdizi01) > atol(cdizi02)) return 1;
  else if(atol(cdizi01) == atol(cdizi02)) return 0;
  else return -1;
}

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

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