Standart C Programlama Dili


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, clock()/CLOCKS_PER_SEC 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 TIME_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)