9.26. time.h: Tarih Ve Saat
Bu dosya, zaman yordamları için bildirimler
ile, size_t ve sırasıyla clock ve
time fonksiyonları tarafından döndürülen, uygulamaya bağlı
clock_t ve time_t tiplerinin tanımlarını içerir.
Ayrıca, localtime ve gmtime yordamları tarafından
döndürülüp asctime tarafından kullanılan yapı şöyle
tanımlanmaktadır:
struct tm {
int tm_sec; /* dakikadan sonraki saniyeler: [0-60] */
int tm_min; /* saatten sonraki dakikalar: [0-59] */
int tm_hour; /* geceyarısından beri saatler: [0-23] */
int tm_mday; /* ayın günü: [1-31] */
int tm_mon; /* Ocak’tan beri aylar: [0-11] */
int tm_year; /* 1900’dan beri yıllar */
int tm_wday; /* Pazar’dan beri günler: [0-6] */
int tm_yday; /* Ocak 1’den beri günler: [0-365] */
int tm_isdst; /* Yaz Saati Uygulaması bayrağı: [-1/0/1] */
}
Diğer bir yapı da, belirli bir zamandan itibaren saniye ve
nanosaniye cinsinden geçen süreyi tutabilecek olan
struct timespec’dir:
struct timespec {
time_t tv_sec; /* tam saniyeler: ≥ 0 */
long tv_nsec; /* nanosaniyeler: [0-999999999] */
}
Bu dosyada tanımlanan CLOCKS_PER_SEC makrosu,
ifadesi
aracılığıyla, saniye cinsinden işlemci zamanını elde etmek için
kullanılabilir. Sıfırdan büyük bir değere eşit olarak tanımlanan
clock()/CLOCKS_PER_SECTIME_UTC makrosu ise timespec_get fonksiyona
parametre olarak verildiğinde UTC zamanı ifade eder.
Zaman işleme ile ilgili fonksiyon prototipleri:
clock_t clock(void) double difftime(time_t z1, time_t z2) time_t mktime(struct tm * zg) time_t time(time_t * z) int timespec_get(struct timespec * zy, int t)
Dönüşüm ile ilgili fonksiyon prototipleri:
char * asctime(const struct tm * zg)
char * ctime(const time_t * z)
struct tm * gmtime(const time_t * z)
struct tm * localtime(const time_t * z)
size_t strftime(char * restrict kd, size_t mu, const char * restrict b,
const struct tm * restrict zg)