Bildirim
double difftime(time_t time_last, time_t time_first);
Açıklama
Time_last ve time_first parametreleri ile gösterilen time_t değerlerinin farkını (time_last-time_first) saniye olarak hesaplar. Eğer time_last değeri time_fisrt değerinden önceki bir zamanı gösteriyorsa, negatif bir sonuç elde edilir.
Parametreler
time_last: Fark alma işleminde son zamanı gösteren time_t değeridir.
time_first: Fark alma işleminde ilk zamanı gösteren time_t değeridir.
Dönüş değeri
İki zaman değeri arasındaki farkı (time_last-time_first) double bir değer olarak geri döndürür.
Örnek
#include <stdio.h>
#include <time.h>
int main(void)
{
time_t time_1970, time_3month;
struct tm *time_detay;
double ret;
time_1970 = time(NULL);
/* 1 Ocak 1970'den bugüne saniye olarak geçen zaman */
printf("1 Ocak 1970'den bugüne geçen zaman: %ld saniye\n", time_1970);
/* Yerel zaman */
time_detay = localtime(&time_1970);
printf("Yerel zaman: %s", asctime(time_detay));
/* 3 ay geri gidiş */
time_detay->tm_mon -= 3;
time_3month = mktime(time_detay);
printf("3 ay önceki yerel zaman: %s", ctime(&time_3month));
ret = difftime(time_1970, time_3month);
printf("3 ay önceden bu ana kadar %.2f saniye geçti.", ret);
return 0;
}
Yukarıdaki örnekte, program aşağıdaki satırları ekrana yazar.
1 Ocak 1970'den bugüne geçen zaman: 1571127787 saniye Yerel zaman: Tue Oct 15 11:23:07 2019 3 ay önceki yerel zaman: Mon Jul 15 11:23:07 2019 3 ay önceden bu ana kadar 7948800.00 saniye geçti.
Program time() fonksiyonu ile 1 Ocak 1970'den bugüne geçen zamanı saniye olarak alır ve ekrana yazar. Bu değeri localtime() fonksiyonu ile yerel zamana çevirerek, asctime() fonksiyonu ile ekrana yazar. Zaman yapısı içinde sadece tm_mon değerini 3 ay geri alarak mktime() fonksiyonu ile yeni bir time_t değeri oluşturur. Yeni zamanı ctime() fonksiyonu ile ekrana yazar. Son olarak, difftime() fonksiyonu iki zaman diliminin farkını saniye olarak alır ve elde ettiği değeri ekrana yazar.