Postingan kali ini akan coba dibahas sedikit tentang cara
mengambil waktu system. Pengambilan data ini bermanfaat saat kita membuat
sebuah aplikasi yang membutuhkan data waktu dari komputer yang digunakan
komputer yang menjalankan aplikasi yang telah kita buat.
Untuk bisa mengakses data waktu dari system/komputer, kita
memerlukan sebuah library yaitu “time.h”.
Dengan library tersebut kita bisa mengakses waktu mulai dari detik, menit, jam
dan tanggal. Saat mengakses waktu dalam bentuk jam, menit, detik dan yang
berkaitan dengan waktu system kita juga memanfaatkan struktur (struct tm) yang
telah disediakan didalam library “time.h”.
Selain itu, untuk dapat mengakses waktu kita juga
memanfaatkan fungsi “localtime”.
Berikut ini contoh program mengambil data waktu system kemudian
ditampilkan di textbox, yang mana pengambilan data nya memanfaatkan event
button click.
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
//deklarasi objek yang memanfaatkan class dan struct yang
ada di library time.h
time_t
rawtime;
struct tm * timeinfo;
//deklarasi variabel untuk menampung
data sementara dari pemanggilan fungsi localtime
char jam,menit,detik;
//proses pengambilan data waktu sistem
time (
&rawtime );
timeinfo = localtime (
&rawtime );
//proses pemindahan
data waktu sesuai dengan format ke dalam variabel
jam=timeinfo->tm_hour; //format untuk
jam
menit=timeinfo->tm_min; //format untuk
menit
detik=timeinfo->tm_sec; //format untuk
detik
//menampilkan data waktu yang telah diambil kedalam textBox
textBox1->Text=jam.ToString();
textBox2->Text=menit.ToString();
textBox3->Text=detik.ToString();
}
Program diatas akan mengambil data waktu sesuai dengan format
waktu jam, menit dan detik. Format jam yang diambil adalah format 24 jam.
Program diatas juga bisa kita modifikasi dengan menambahkan
sebuah timer, sehingga bisa memunculkan waktu system secara realtime yang
kemudian ditampilkan kedalam sebuah label. Berikut ini merupakan contoh
programnya yang memanfaatkan event timer_tick dengan menggunakan interval timer
sebesar 100.
private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) {
//deklarasi objek yang memanfaatkan class dan struct yang
ada di library time.h
time_t
rawtime;
struct tm * timeinfo;
//deklarasi variabel untuk menampung
data sementara dari pemanggilan fungsi localtime
char jam,menit,detik;
//proses pengambilan data waktu sistem
time (
&rawtime );
timeinfo
= localtime ( &rawtime );
//proses pemindahan data waktu sesuai dengan format ke
dalam variabel
jam=timeinfo->tm_hour; //format untuk
jam
menit=timeinfo->tm_min; //format untuk
menit
detik=timeinfo->tm_sec; //format untuk
detik
//menampilkan data jam, menit dan detik kedalam sebuah
label
label4->Text=jam.ToString()
+ " : " + menit.ToString() + " : " + detik.ToString();
}
Sebelum menjalankan program diatas, nilai timer1->Enabled
harus disetting “true” agar timer
aktif. Kalau dilihat dari programnya, sama saja yang berbeda hanya jika
menggunakan event yang digunakan adalah button_click maka program hanya
dijalankan 1 kali saja(hanya pada saat button ditekan) sehingga waktu yang
didapat adalah waktu saat penekanan tombol (button). Jika menggunakan event
timer_tick, selama timer aktif maka program akan dijalankan terus menerus
selama event timer_tick berlaku, hal tersebut mengakibatkan pengambilan data
yangterus menerus dan akan menghasilkan data waktu yang tampil di label
bersifat realtime.