Panduan Penggunaan Tarikh dan Masa di C++: Untuk Pemula

Hai di sana, penyihir C++ masa depan! Hari ini, kita akan melakukan perjalanan yang menarik melalui dunia tarikh dan masa di C++. Jangan khawatir jika anda belum pernah menulis satu baris kod sebelum ini – saya akan berada di sini dengan anda, menjelaskan semua langkah demi langkah. Jadi, rakam minuman kegemaran anda, dapatkan keselesaan, dan mari kita melompat masuk!

C++ Date & Time

Memahami Dasar-dasar

Sebelum kita mula untuk memanipulasi tarikh dan masa, adalah penting untuk memahami bahawa C++ tidak memiliki jenis tarikh yang terbina-dalam. Sebaliknya, ia menggunakan jenis data time_t untuk mewakili masa. Ini mungkin terdengar agak pelik, tetapi berfikir tentang itu sebagai angka besar yang mewakili jumlah saat yang berlalu sejak 1 Januari 1970. Tarikh ini sering disebut "epoch" di atas ilmu komputer – ia seperti hari lahir komputasi modern!

Tarikh dan Masa Semasa

Mari kita mula dengan sesuatu yang ringkas tetapi berkuasa – mendapatkan tarikh dan masa semasa. Ini cara yang kita lakukan ini:

#include <iostream>
#include <ctime>

int main() {
time_t sekarang = time(0);
std::cout << "Masa semasa: " << sekarang << std::endl;
return 0;
}

Mari kita pecahkan ini:

  1. Kita sertakan dua header penting: <iostream> untuk operasi input/output, dan <ctime> untuk fungsi yang berkaitan dengan masa.
  2. Di dalam fungsi main(), kita gunakan time(0) untuk mendapatkan masa semasa.
  3. Kita simpan masa ini di dalam variabel time_t yang dipanggil sekarang.
  4. Akhirnya, kita cetak nilai ini.

Apabila anda menjalankan program ini, anda akan lihat angka besar yang dicetak. Itu adalah jumlah saat sejak epoch. Tidak sangat dapat dibaca oleh manusia, kan? Jangan khawatir, kita akan memperbaiki itu sebentar lagi!

Mengubah time_t ke String

Sekarang, mari kita buat output kita lebih dapat dibaca:

#include <iostream>
#include <ctime>

int main() {
time_t sekarang = time(0);
char* dt = ctime(&sekarang);
std::cout << "Tarikh dan masa setempat adalah: " << dt << std::endl;
return 0;
}

Ini yang baru:

  1. Kita gunakan fungsi ctime() untuk mengubah nilai time_t kita ke string.
  2. String ini disimpan di dalam dt.
  3. Kita cetak string ini, yang memberikan kita tarikh dan masa yang dapat dibaca oleh manusia.

Banyak baik, kan? Anda sepatutnya lihat sesuatu seperti "Tarikh dan masa setempat adalah: Sel Jun 22 15:30:45 2023".

Format Masa menggunakan struct tm

Walaupun ctime() adalah mudah digunakan, kadang-kadang kita perlu lebih kontrol atas format tarikh dan masa kita. Ini di mana struct tm menjadi berguna. Ia adalah struktur yang memecah masa menjadi komponen mereka (tahun, bulan, hari, jam, dll.).

Mari lihat cara untuk menggunakannya:

#include <iostream>
#include <ctime>

int main() {
time_t sekarang = time(0);
tm *ltm = localtime(&sekarang);

std::cout << "Tahun: " << 1900 + ltm->tm_year << std::endl;
std::cout << "Bulan: " << 1 + ltm->tm_mon << std::endl;
std::cout << "Hari: " << ltm->tm_mday << std::endl;
std::cout << "Masa: " << ltm->tm_hour << ":";
std::cout << ltm->tm_min << ":";
std::cout << ltm->tm_sec << std::endl;

return 0;
}

Mari kita rakam ini:

  1. Kita gunakan localtime() untuk mengubah nilai time_t kita ke struktur tm.
  2. Kita kemudian boleh mengakses komponen individu tarikh dan masa menggunakan anggota struktur.
  3. Catat bahwa kita menambah 1900 kepada tm_year kerana ia menghitung tahun sejak 1900.
  4. Kita menambah 1 kepada tm_mon kerana bulan adalah bernombor 0-11 dalam struktur ini.

Ini memberikan kita lebih banyak fleksibiliti dalam bagaimana kita menyajikan informasi tarikh dan masa kita.

Pilihan Format

Sekarang bahwa kita tahu cara mengakses komponen individu tarikh dan masa, mari lihat beberapa pilihan format umum:

Pengepala Format Keterangan Contoh
%Y Tahun (4 digit) 2023
%y Tahun (2 digit) 23
%m Bulan (01-12) 06
%d Hari dalam bulan (01-31) 22
%H Jam dalam format 24h (00-23) 15
%I Jam dalam format 12h (01-12) 03
%M Minit (00-59) 30
%S Saat (00-59) 45
%p Penetapan AM atau PM PM

Mari kita gunakan ini:

#include <iostream>
#include <ctime>
#include <iomanip>

int main() {
time_t sekarang = time(0);
tm *ltm = localtime(&sekarang);

std::cout << "Format ubahan: "
<< std::put_time(ltm, "%Y-%m-%d %I:%M:%S %p")
<< std::endl;

return 0;
}

Dalam contoh ini:

  1. Kita sertakan header <iomanip> untuk std::put_time.
  2. Kita gunakan std::put_time untuk memformat masa kami menurut pengepala yang kita berikan.
  3. Ini akan mengeluarkan sesuatu seperti "2023-06-22 03:30:45 PM".

Kesimpulan

Tahniah! Anda baru saja melakukan langkah pertama anda ke atas dunia manipulasi tarikh dan masa di C++. Kita telah meliputi cara mendapatkan masa semasa, mengubahnya ke string yang dapat dibaca, mengakses komponen individu, dan juga membuat format ubahan.

Ingat, bekerja dengan tarikh dan masa dapat menjadi tricky (pikir tentang zon masa, waktu penyimpanan, tahun kabisat...), tetapi dasar-dasar ini akan memberikan anda pelayanan yang baik dalam kebanyakan situasi. Apabila anda teruskan perjalanan C++ anda, anda akan menemui teknik dan pustaka yang lebih mahir untuk menangani operasi tarikh dan masa yang kompleks.

Teruskan untuk berlatih, tetaplah curious, dan yang paling penting, bersenang-senanglah untuk mengoding! Siapa tahu, mungkin satu hari nanti anda akan menulis kod untuk mesin perjalanan masa yang besar berikutnya. Sampai itu, jaga kompiler anda panas dan kesalahan sintaks anda sejuk!

Credits: Image by storyset