IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   C ve C++ (https://www.ircforumlari.net/c-ve-c/)
-   -   Tarih Saat Ayarlamaları (https://www.ircforumlari.net/c-ve-c/477860-tarih-saat-ayarlamalari.html)

MorfiN 30 Nisan 2012 12:33

Tarih Saat Ayarlamaları
 
Bazı uygulamalarda program içerisinde tarih ve saat bilgilerine ihtiyaç duyulabilir. C dilinde, tarih ve saat fonksiyonlarının bildirimleri, semblik sabitler ve standart yapılar <time.h> başlık dosyasında tanımlanmıştır. Bu fonksiyonlar üç temel işlevi yerine getirir:

Takvim (Tarih) bilgileri
Yerel Saat
Saat Dilimleri
Bu bölümde tarih ve saat fonksiyonları incelenmişitir.


23.1 time() Fonksiyonu

time() fonksiyonu 01/01/1970 tarihinden, programın çalıştığı tarihe ve saate kadar geçen sürenin saniye cinsinden değerini gönderir. Genel bildirimi:

PHP- Kodu:

      time_t time(time_t *zaman); 

şeklindedir. Burada:
time_t sayısal bir tip (genllikle long int) olup zaman bilgisini temsil eder.
zaman tarih bilgisini tutan gösterici tipinde bir değişkendir.

NOT
Derleyici tarih bilgisi göstermezse time() fonksiyonu -1 değerini gönderir.

01/01/1970'den bu güne geçen süreyi iki yolla öğrenebiliriz:
Geri dönüş değerini kullanarak
PHP- Kodu:

time_t t;
...
time(NULL);
printf("zaman: %ld\n",t);
fonksiyon parametresinden
time_t t
;
...
time(&t);
printf("zaman: %ld\n",t); 


Şimdi örnek uygulamayı Program 23.1'de görelim:

PHP- Kodu:

/* 23prg01.c: time() fonksiyonun kullanımı */

#include <stdio.h>
#include <time.h>

int main ()
{
  
time_t saniye;   /* long saniye; anlamında */

  
saniye time (NULL);

  
puts("01/01/1970'den bu gune kadar gecen sure,");

  
printf ("Saniye olarak  %ld\n"saniye);

  
/* 1 saat = 60*60 = 3600 sn. */
  
printf ("Saat olarak    %ld\n"saniye/3600);

  
/* 1 gün = 24 saat = 24*60*60 = 86400 sn. */
  
printf ("Gun olarak     %ld\n"saniye/86400);

 return 
0;


23.2 ANSI C Tarih-Saat Fonksiyonları, Sabitleri ve Yapıları

Tablo 23.1'de ANSI C'de <time.h> başlık dosyasında bildirilen tarih-saat fonksiyonları listelenmiştir.

Tablo 18.1: time.h'te tanımlı tarih-saat fonksiyonları
Fonksiyon Bildirimi Açıklama


char *asctime(const struct tm *zmn_g); zmn_g göstericinin işaret ettiği veriyi, daha anlaşılabilir bir formatla katar bilgisine çevirir.
zmn_g göstericisi, gmtime() ve localtime() fonksiyonlarının döndürdüğü, tm yapısını gösterir. Geri döndürelen katarın genel formatı:


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
Mmm dd hh:mm:ss yyyy


şeklindedir. Burada
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
haftanın günü, Mmm ay bilgisi, dd ayın günü hh:mm:ss saat bilgisini ve yyyy yıl bilgisidir.
clock_t clock(void); Zaman tik-tak bilgisini döndürür.
char *ctime(const time_t *zaman); Geriye anlaşılır formatta yerel zamanı tutan bir katar döndürür. zaman, time_t tipinde bir uzun tamsayıdır. Katarın formatı:
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
Mmm dd hh:mm:ss yyyy şeklindedir.
double difftime(time_t zaman1, time_t zaman2); zaman2 - zaman1 farkını saniye cinsinden hesaplar.


struct tm *gmtime(const time_t *zaman); zaman'ı tm yapısına (İngiltere'deki Greenwitch'göre GMT cinsinden) çevirir. zaman genellikle time fonksiyonu ile döndürülür.

struct tm *localtime(const time_t *zaman); zaman'ı tm yapısına (yerel saat cinsinden) çevirir. zaman genellikle time fonksiyonu ile döndürülür.

time_t mktime(struct tm *zaman); tm tipinde, zaman göstericisine ait tarih-saat bilgisini gösterir.

time_t time(time_t *zaman); 1 Ocak 1970'den bu ana kadar geçen sürenin zaman saniye cinsinden hesaplar.

CLK_TCK (clock ticks per second) makro sabit. Zaman tik-takları ve zamanın saniye cinsinden karşılığı arasında ilişkiyi tanımlar. Bu sabit Turbo C'de
#define CLK_TCK 18.2
şeklinde tanımlanmıştır.
clock_t ve time_t clock() ve time() fonksiyonlarının kullandığı veri tipleri. Bunlar genellikle genllikle long int tipleridir ve <time.h> başlık dosyasında şöyle tanımlıdır.
typedef long clock_t
typedef long time_t
asctime(), gmtime(), localtime() ve mktime() fonksiyonlarının kullandığı tm yapısı söyledir:

struct tm {
int tm_sec; /* saniye, (0 - 59) */
int tm_min; /* dakika, (0 - 59) */
int tm_hour; /* saat, (0 - 23) */
int tm_mday; /* ayın günü, (1 - 31) */
int tm_mon; /* ay, (0 - 11), 0 = Ocak */
int tm_year; /* yıl - 1900 */
int tm_wday; /* haftanın günü, (0 - 6), 0 = Pazar */
int tm_yday; /* yılın günü,(0 - 365) */
int tm_isdst; /* gündüz (-1/0/1) */
};

PHP- Kodu:


/* 23prg02.c: asctime() ve localtime() fonksiyonlarının kullanımı */

#include <stdio.h>
#include <time.h>

int main()
{
  
time_t t;
  
struct tm *zaman_bilgisi;

  
time (&t);
  
zaman_bilgisi localtime (&t);

  
printf("Su anki tarih ve saat: %s",asctime(zaman_bilgisi));

 return 
0;


PHP- Kodu:



ÇIKTI

/* 23prg03.c: ctime() fonksiyonunun kullanımı */

#include <stdio.h>
#include <time.h>

main()
{
  
time_t t;

  
time(&t);
  
printf("Su anki tarih ve saat: %s",ctime(&t));

 return 
0;




Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 21:27.

Powered by vBulletin® Version 3.8.8 Beta 3
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2024 IRCForumlari.Net