Standart C Programlama Dili


8.4. Zaman Fonksiyonları

Zamanla ilgili dokuz tane standart fonksiyon bulunmaktadır. Gerekli bildirimler time.h adlı dosyada bulunmaktadır.

Şu anki takvim zamanını elde etmek için time fonksiyonunu çağırın. Sonuç time_t tipindendir. Eğer zaman elde edilebilir değilse, bu fonksiyon -1 döndürür.

difftime fonksiyonu iki time_t argümanı alır ve bunlar arasındaki zaman farkının saniye cinsinden verildiği bir double döndürür.

Takvim zamanını yerel zamana dönüştürmek için, localtime fonksiyonunu kullanın.

gmtime fonksiyonu takvim zamanını (eskiden Greenwich Ortalama Saati olarak bilinen) Düzenlenmiş Evrensel Saate çevirmek için kullanılır.

Zamanı görüntülemek için önce bir karakter dizisine çevirmeniz gerekir. Bu asctime fonksiyonu ile yerine getirilir. Argümanı tarafından işaret edilen yapı içindeki zamanı bir karakter dizisine dönüştürür.

ctime(zg)

çağrısı

asctime(localtime(zg))

çağrısına eşdeğerdir. Yani yerel zamanı bir karakter dizisine dönüştürür.

mktime fonksiyonu argümanı tarafından işaret edilen yapı içindeki yerel zamanı takvim zamanına dönüştürür ve sonucu time_t şeklinde döndürür. Eğer sonuç ifade edilemezse, -1 döndürülür.

Program çalışmaya başladığından beri ne kadar işlemci zamanı kullandığını öğrenmek için, clock_t tipinden sonuç döndüren, clock fonksiyonunu çağırın.

En son olarak, şu anki yöreye uygun olarak tarih ve saatler içeren karakter dizileri hazırlamak için strftime fonksiyonu kullanılabilir. Dört tane argümanı vardır: Sonuçta uygun formatlanmış karakter dizisini içerecek bölgeye bir karakter göstergesi; bu karakter dizisine konulacak en fazla karakter sayısını gösteren size_t tipinde bir sayı; printf’tekine benzeyen bir kontrol karakter dizisi ve zaman bilgisini içeren yapıya bir gösterge. Normalde olduğu gibi önüne % konan, kontrol karakter dizisindeki dönüşüm tanımlamaları zaman unsurlarını belirtirler ve sonuçtaki karakter dizisinde kullanılmakta olan yöreye uygun olarak biçimlendirilmiş ilgili zaman bilgileri ile değiştirilirler. Diğer karakterler, tıpkı printf gibi, değiştirilmeden bırakılırlar. Dönüşüm tanımlamaları ve anlamları şöyledir:

Dönüşüm karakteriAnlamı
akısaltılmış gün adı
Atam gün adı
bkısaltılmış ay adı
Btam ay adı
cyerel tarih ve saat gösterimi
day içindeki gün
Hsaat (24 saatlik)
Isaat (12 saatlik)
jyıl içindeki gün
may
Mdakika
pAM (öğleden önce) veya PM (öğleden sonra) ifadelerinin yerel eşdeğeri
Ssaniye
U(Pazar gününden başlamak koşuluyla) yıl içindeki hafta sayısı
whafta içindeki gün
W(Pazartesi gününden başlamak koşuluyla) yıl içindeki hafta sayısı
xyerel tarih gösterimi
Xyerel saat gösterimi
yyılın son iki rakamı
Yyıl
Zsaat dilimi adı
%%

strftime, en sondaki \0 hariç, oluşturulan karakter sayısını döndürür. Eğer bu sayı ikinci argümandan büyükse, 0 döndürülür.