08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

C ve Sistem Programcıları Derneği - C Ders Notları - Necati Ergin<br />

struct tm {<br />

int tm_sec;<br />

int tm_min;<br />

int tm_hour;<br />

int tm_mday;<br />

int tm_mon;<br />

int tm_year;<br />

int tm_wday;<br />

int tm_yday;<br />

int tm_isdst;<br />

};<br />

Yapının ismi tm önekiyle başlayan tüm elemanları int türdendir. Her bir eleman tarih ya<br />

da zaman ile ilgili faydalı bir veriyi tutar. Aşağıda yapının elemanları hakkında bilgi<br />

veriliyor:<br />

tm_sec : saniye değeri (0 - 60)<br />

tm_min : dakika değeri (0 - 60)<br />

tm_hour : saat değeri (0 – 24)<br />

tm_mday : Ayın günü (1 – 31)<br />

tm_mon : Ay değeri (0 Ocak, 1 Şubat, 2 Mart…)<br />

tm_year : Yıl değerinin 1900 eksiği<br />

tm_wday : Haftanın günü (0 Pazar, 1 Pazartesi, 2 Salı…)<br />

tm_yday : Yılın günü (1 Ocak için 0)<br />

tm_isdst :Gün ışığı tasarruf modu ile ilgili bilgi. Bu elemanın değerinin pozitif ise<br />

tasarruf modunda olunduğu bilgisi iletilmiş olur. Bu değer 0 ise tasarruf modu değildir.<br />

Elemanın değerinin negatif olması durumunda bu bilgi elde edilemiyor demektir.<br />

struct tm yapısı ile tutulan zaman bilgisine "ayrıştırılmış zaman bilgisi" (broken-down<br />

time) denir.<br />

localtime işlevi statik ömürlü bir struct tm nesnesinin adresi ile geri döner. İşlevin geri<br />

dönüş değeri olan adresteki yapı nesnesinin değeri kullanılmadan ya da başka bir<br />

nesneye aktarılmadan, işlev bir kez daha çağrılırsa, daha önceki çağrı ile ilgili olarak<br />

üretilen değerin üstüne yazılmış olur. İşlevin parametre değişkeni time_t türünden bir<br />

nesneyi gösteren göstericidir. İşlev adresini aldığı bu nesneden takvim zamanı bilgisini<br />

alır. Aşağıda localtime işlevini kullanan örnek bir kod veriliyor:<br />

#include <br />

#include <br />

char *months[12] = {"Ocak", "Subat", "Mart", "Nisan", "Mayis", "Haziran",<br />

"Temmuz", "Agustos", "Eylul","Ekim", "Kasim", "Aralik"};<br />

char *days[7] = {"Pazar","Pazartesi", "Sali", "Carsamba", "Persembe",<br />

"Cuma", "Cumartesi"};<br />

int main()<br />

{<br />

time_t timer;<br />

struct tm *tptr;<br />

time(&timer);<br />

tptr = localtime(&timer);<br />

printf("Tarih : %02d %s %04d %s\n", tptr->tm_mday,months[tptr-<br />

>tm_mon], ptr->tm_year + 1900, days[tptr- >tm_wday]);<br />

printf("Saat:%02d:%02d:%02d\n", tptr->tm_hour, tptr->tm_min,<br />

tptr->tm_sec);<br />

printf("bugun %d yilinin %d. gunu\n", tptr->tm_year + 1900,<br />

tptr->tm_yday);<br />

if (tptr->tm_isdst < 0)<br />

398

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!