Panduan Penggunaan Tanggal dan Waktu di C++: Untuk Pemula

Halo para jagoan C++ masa depan! Hari ini, kita akan melakukan perjalanan yang menyegarkan melalui dunia tanggal dan waktu di C++. Jangan khawatir jika Anda belum pernah menulis satu baris kode sebelumnya – saya akan selalu di sini untuk menjelaskan semua langkah demi langkah. Jadi, ambil minuman favorit Anda, bersantai, dan mari kita melompatlah!

C++ Date & Time

Memahami Dasar-dasar

Sebelum kita memanipulasi tanggal dan waktu, penting untuk dipahami bahwa C++ tidak memiliki tipe tanggal yang built-in. Sebagai gantinya, itu menggunakan tipe data time_t untuk mewakili waktu. Ini mungkin terdengar agak aneh, tetapi pikirkan sebagai sebuah angka besar yang mewakili jumlah detik yang telah berlalu sejak 1 Januari 1970. Tanggal ini sering disebut "epoch" dalam ilmu komputer – itu seperti tanggal lahir dari teknologi inovasi!

Tanggal dan Waktu Saat Ini

Mari kita mulai dengan sesuatu yang sederhana namun kuat – mendapatkan tanggal dan waktu saat ini. Ini adalah cara kita melakukannya:

#include <iostream>
#include <ctime>

int main() {
time_t sekarang = time(0);
std::cout << "Waktu saat ini: " << sekarang << std::endl;
return 0;
}

Mari kita pecahkan ini:

  1. Kita menyertakan dua header yang penting: <iostream> untuk operasi input/output, dan <ctime> untuk fungsi yang terkait dengan waktu.
  2. Di dalam fungsi main(), kita menggunakan time(0) untuk mendapatkan waktu saat ini.
  3. Kita menyimpan waktu ini dalam variabel time_t yang bernama sekarang.
  4. Akhirnya, kita mencetak nilai ini.

Ketika Anda menjalankan program ini, Anda akan melihat sebuah angka besar yang dicetak. Itu adalah jumlah detik sejak epoch. Tidak begitu mudah dibaca oleh manusia, kan? Jangan khawatir, kita akan memperbaikinya segera!

Mengonversi time_t ke String

Sekarang, mari membuat output kita lebih mudah dibaca:

#include <iostream>
#include <ctime>

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

Ini adalah yang baru:

  1. Kita menggunakan fungsi ctime() untuk mengonversi nilai time_t kita ke sebuah string.
  2. String ini disimpan dalam dt.
  3. Kita mencetak string ini, yang memberikan kita tanggal dan waktu yang dapat dibaca manusia.

Jadi lebih baik, kan? Anda harus melihat sesuatu seperti "Tanggal dan waktu lokal adalah: Sel Jun 22 15:30:45 2023".

Format Waktu menggunakan struct tm

Meskipun ctime() sangat mudah digunakan, terkadang kita perlu lebih banyak kontrol atas format tanggal dan waktu kita. Ini adalah tempat struct tm menjadi sangat berguna. itu adalah struktur yang memecahkan waktu menjadi komponen-komponennya (tahun, bulan, hari, jam, dll.).

Mari lihat cara penggunaannya:

#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 << "Waktu: " << ltm->tm_hour << ":";
std::cout << ltm->tm_min << ":";
std::cout << ltm->tm_sec << std::endl;

return 0;
}

Mari kita pelajari ini:

  1. Kita menggunakan localtime() untuk mengonversi nilai time_t kita ke sebuah struktur tm.
  2. Kita kemudian dapat mengakses komponen individual tanggal dan waktu menggunakan anggota struktur.
  3. Catatan bahwa kita menambahkan 1900 ke tm_year karena itu menghitung tahun sejak 1900.
  4. Kita menambahkan 1 ke tm_mon karena bulan dihitung 0-11 dalam struktur ini.

Ini memberikan kita banyak fleksibilitas dalam bagaimana kita menyajikan informasi tanggal dan waktu.

Pilihan Format

Sekarang bahwa kita tahu cara mengakses komponen individual tanggal dan waktu, mari lihat beberapa pilihan format umum:

Format Specifier Deskripsi 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 Menit (00-59) 30
%S Detik (00-59) 45
%p Desainasi 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 khusus: "
<< std::put_time(ltm, "%Y-%m-%d %I:%M:%S %p")
<< std::endl;

return 0;
}

Dalam contoh ini:

  1. Kita menyertakan header <iomanip> untuk std::put_time.
  2. Kita menggunakan std::put_time untuk memformat waktu kita sesuai dengan spesifikator yang kita berikan.
  3. Ini akan menghasilkan output seperti "2023-06-22 03:30:45 PM".

Kesimpulan

Selamat! Anda baru saja mengambil langkah pertama Anda ke dalam dunia manipulasi tanggal dan waktu di C++. Kita telah membahas cara mendapatkan waktu saat ini, mengonversinya ke string yang dapat dibaca, mengakses komponen individual, dan bahkan membuat format khusus.

Ingat, bekerja dengan tanggal dan waktu dapat menjadi berat (pikirkan tentang zona waktu, daylight saving time, tahun kabisat...), tetapi dasar-dasar ini akan membantu Anda dalam kebanyakan situasi. Sebagai Anda melanjutkan perjalanan C++ Anda, Anda akan menemukan teknik dan pustaka yang lebih tingkat lanjut untuk menangani operasi tanggal dan waktu yang kompleks.

Terus latihan, tetap curious, dan yang paling penting, nikmati coding! Siapa tahu, mungkin suatu hari Anda akan menulis kode untuk mesin perjalanan waktu yang besar berikutnya. Sampai saat itu, jaga kompilernya panas dan kesalahan sintaks Anda dingin!

Credits: Image by storyset