C++ Tarih İşlemleri

C++ programlama dilinde tarih yazma, saat yazma ve iki tarih arasında fark gibi tarih işlemleri ile ilgili bilgiler yer alıyor.

Tarih işlemleri

C++ programlama dilinde tarih ve saat işlemleri için ctime kütüphanesi kullanılır.

Kütüphane içinde tarih ve saat bilgilerini saklamak için clock_t, time_t, size_t, tm türündeki değişkenler yer alır.

Tarih ve saat bilgilerini almak, yazdırmak ve farklı biçimlere çevirmek için time, ctimeasctimelocaltime vb. tarih fonksiyonları yer alır.

C++ ile tarih bilgisini almak için time fonksiyonu kullanılır.

Fonksiyon time_t türünde değer döndürür.

Bu değer ctime fonksiyonuna parametre olarak gönderilerek tarih bilgisi yazdırılır.

#include <iostream>
#include <ctime>

using namespace std;

int main(){

  time_t tarih = time(NULL);
  cout << ctime(&tarih);

  return 0;
}

Yazdırma işlemini farklı bir biçimde yapmak için time_t değişken türünün localtime fonksiyonu ile tm değişken türüne çevrilmesi gerekir.

Çevirme işleminden sonra asctime ve strftime fonksiyonları kullanılarak istenilen biçimde yazdırma işlemi yapılır.

#include <iostream>
#include <ctime>

using namespace std;

int main(){

  time_t tarih = time(NULL);
  struct tm *tarih_bilgisi = localtime(&tarih);
  char mTarih[50];

  cout << asctime(tarih_bilgisi);

  strftime(mTarih, sizeof(mTarih), "%d-%m-%Y %H:%M:%S", tarih_bilgisi);

  cout << mTarih;

  return 0;
}

İki tarih arasındaki gün, ay, yıl gibi farkları bulmak için difftime fonksiyonu kullanılır.

#include <iostream>
#include <ctime>

using namespace std;

int main(){

  time_t tarih = time(NULL);
  struct tm *tarih_bilgisi = localtime(&tarih);

  tarih_bilgisi->tm_hour = 0;
  tarih_bilgisi->tm_min = 0;
  tarih_bilgisi->tm_sec = 0;
  tarih_bilgisi->tm_mon = 0;
  tarih_bilgisi->tm_mday = 1;

  int gecenGunSayisi = difftime(tarih, mktime(tarih_bilgisi)) / (60 * 60 * 24);

  cout << gecenGunSayisi;

  return 0;
}

Fonksiyon geri dönüş değeri olarak iki tarih arasındaki saniye farkını verir.

Çeşitli hesaplamalar yapılarak gün, ay, yıl ve diğer birimlerin farkı bulunabilir.

Programlama örneklerine buradan ulaşabilirsiniz…

Hayırlı günler dilerim.

Yusuf SEZER

Yusuf SEZER

Computer Engineer who interested about web technologies, algorithms, artificial intelligence and embedded systems; constantly exploring new technologies.


Bunlara'da bakmalısın!