1.                                                

C++ Dersleri - 27)TARİH VE ZAMAN [ÇEVİRİ]

'C/C++' forumunda Hattab tarafından 10 Şubat 2016 tarihinde açılan konu

  1. Hattab

    Hattab New Member

    Katılım:
    22 Ekim 2015
    Mesaj:
    550
    Beğeniler:
    4
    Ödül Puanları:
    0

    C++ standart kütüphanesi , bu değişken için geçerli bir veri tipi içermez.C++ , C'deki tarih ve zaman fonksiyon ve yapılarını miras alır.Tarih ve zamanla ilgili fonksiyonlara erişmek için, <ctime> başlığını C++ programınıza dahil etmelisiniz.

    Zamanla ilgili 4 farklı tip vardır:clock_t,time_t,size_t ve tm
    clock_t ,size_t ve time_t tipleri sistem zamanını kısa integer değerleri halında saklayabilen değişken tipleridir.

    tm yapı tipi ise tarig ve zamanı , C dilindeki yapılardaki şekliyle tutar.Aşağıda bununla ilgili örnek verilmiştir:

    struct tm {
    int tm_sec; // seconds of minutes from 0 to 61
    int tm_min; // minutes of hour from 0 to 59
    int tm_hour; // hours of day from 0 to 24
    int tm_mday; // day of month from 1 to 31
    int tm_mon; // month of year from 0 to 11
    int tm_year; // year since 1900
    int tm_wday; // days since sunday
    int tm_yday; // days since January 1st
    int tm_isdst; // hours of daylight savings time
    }

    Verilen fonksiyonlar, C ve C++'da tarih ve zamanlarla çalışırken çok önemlidirler.Tüm bu fonksiyonlar C ve C++ standart kütüphanelerinin bir parçadır.Aşağıda detayları kontrol edebilirsiniz:

    SN Function Purpose
    1 time_t time(time_t *time); 1 ocak 1970'den itibaren saniyeleri sayar.(Anlamadım ben de)

    2 char *ctime(const time_t *time); gün ay yıl saat:dakika:saniye şeklinde bir string pointeri döndürür.

    3 struct tm *localtime(const time_t *time); tm yapısı tipinde loka zamanı belirten değer döndürür.

    4 clock_t clock(****); Programın çalışmaya başlamasından itibaren saymaya başlar.

    5 char * asctime ( const struct tm * time ); gün ay tarih saat:dakika:saniye formunda zamanı içeren yapıyı gösteren bilgiyi içeren stringe işaret eder.(Buralar bayağı karışmaya başladı, kodları kendiniz deneyerek daha kesin bilgiler edinebilirsiniz.)
    6 struct tm *gmtime(const time_t *time); GMT'yi belirten UTC'yi temsil eder.

    7 time_t mktime(struct tm *time); Takvim yapısında zamanı gösterir.

    8 double difftime ( time_t time2, time_t time1 ); Birince ve ikinci zaman arasındaki farkı döndürür.

    9 size_t strftime(); Tarih ve zaman formatını değiştirmek için kullanılır.


    Şimdiki Zaman ve Tarih

    Zamanı geri almak istediğinizi düşünün.Aşağıdaki kodlar bu işi yapar:

    [HASHTAG]#include[/HASHTAG] <iostream>
    [HASHTAG]#include[/HASHTAG] <ctime>

    using namespace std;

    int main( )
    {
    // current date/time based on current system
    time_t now = time(0);

    // convert now to string form
    char* dt = ctime(&now);

    cout << "The local date and time is: " << dt << endl;

    // convert now to tm struct for UTC
    tm *gmtm = gmtime(&now);
    dt = asctime(gmtm);
    cout << "The UTC date and time is:"<< dt << endl;
    }

    Yukardaki kodu çalıştırdığınızda, sonuç:
    The local date and time is: Sat Jan 8 20:07:41 2011

    The UTC date and time is:Sun Jan 9 03:07:41 2011


    tm Yapısını Kullanarak Zamanı Değiştirme


    C veya C++'da tarih ve zamanlarla işlem yaparken , tm yapısı çok önemlidir.Bu yapı, tarih ve zamanı yukardaki örnekte belirtildiği gibi , C yapısındaki formda tutar(kaydeder).Zamanla ilgili bir çok fonksiyon tm yapısını kullanır.Aşağıdaki örnekte farklı tarih, zaman formatları kullanılmıştır:

    Bu bölümde yapıyı kullanırken, basit C yapısı bilgisine sahip olduğunuzu ve structerların üyelerine nasıl erişileceğini bildiğinizi varsayıyorum.(-> bu operatör ile)

    [HASHTAG]#include[/HASHTAG] <iostream>
    [HASHTAG]#include[/HASHTAG] <ctime>

    using namespace std;

    int main( )
    {
    // current date/time based on current system
    time_t now = time(0);

    cout << "Number of sec since January 1,1970:" << now << endl;

    tm *ltm = localtime(&now);

    // print various components of tm structure.
    cout << "Year: "<< 1900 + ltm->tm_year << endl;
    cout << "Month: "<< 1 + ltm->tm_mon<< endl;
    cout << "Day: "<< ltm->tm_mday << endl;
    cout << "Time: "<< 1 + ltm->tm_hour << ":";
    cout << 1 + ltm->tm_min << ":";
    cout << 1 + ltm->tm_sec << endl;
    }

    Yukardaki kod çalıştırıldığında şonuç:
    Number of sec since January 1, 1970:1294548238
    Year: 2011
    Month: 1
    Day: 8
    Time: 22: 44:59

    Alıntıdır.
     

Bu Sayfayı Paylaş

Share