Tuesday, 21 April 2015

Memperoleh Hari sesuai Tanggal


Kali ini kita akan meminta user memasukkan tanggal, bulan, dan tahun, lalu secara otomatis program akan menampilkan hari sesuai tanggal tersebut. Yang kita perlukan adalah library <ctime> dengan menggunakan tipe data bentukan tm . Untuk itu perhatikan kode berikut :

.

#include <ctime>
#include <iostream>

using std::cout;
using std::cin;

int main()
{
    std::tm waktu = {};
    
    cout<<"Masukkan Tahun = ";
    cin>>waktu.tm_year;
    waktu.tm_year-=1900;     //perlu dikurangi karena tahun dimulai dari 1900

    cout<<"Masukkan Bulan = "; 
    cin>>waktu.tm_mon;
    waktu.tm_mon -= 1;       //indeks bulan dimulai dari 0

    cout<<"Masukkan Tanggal = "; 
    cin>>waktu.tm_mday;
    
    //mengatur nilai
    mktime( &waktu);

    cout<<"Hari pada tgl. "<<waktu.tm_mday<<"-"<<waktu.tm_mon<<"-"<< (1900+waktu.tm_year) <<" adalah "<<waktu.tm_wday;

    return 0;    
}

.

Fungsi mktime akan menyesuaikan data yang ada pada nilai-nilai variabel waktu menjadi format data yang sesuai pada sistem waktu di komputer. Misal ketika user memasukkan nilai tahun=2014 dan bulan bernilai 15, maka hasil yang diperoleh adalah tahun=2015 dan bulan=3. Karena nilai bulan telah melebihi setahun dan secara otomatis variabel tm_year bertambah satu. Yang perlu diperhatikan sebelum memproses nilai-nilai tersebut adalah bulan harus dikurang 1 karena indeks nya dimulai dari nol. Selain itu nilai tahun harus dikurang 1900, karena perhitungannya dimulai dari 1900.

Dari kodingan diatas, saat dijalankan ternyata hasil yang diperoleh berupa angka (variabel tm_wday) dimulai dari 0-6 , 0=Minggu, 1=Senin, dst. Untuk itu kita perlu membuat array konstan yang menampung nama-nama hari dalam satu minggu, perhatikan kode berikut :

  
.        
     const char * hari[] = { "Minggu", "Senin", "Selasa", "Rabu",
                             "Kamis", "Jumat", "Sabtu"};

     const char * bulan[] = { "Januari", "Februari", "Maret", "April", "Mei",
                              "Juni", "Juli", "Agustus", "September",
                              "Oktober", "November","Desember"};
     ...

     cout << "Hari pada tgl. " << waktu.tm_mday << " " << bulan[waktu.tm_mon] << " " << (1900+waktu.tm_year) << " adalah " << hari[waktu.tm_wday];
.

Selain hari, bulan dan tahun terdapat juga anggota variabel waktu lainnya seperti tm_hour, tm_min, dan tm_sec pada struktur tm. Proses perhitungan juga akan disesuaikan. Contoh saat memasukkan nilai 65 pada menit maka saat fungsi mktime dipanggil, nilai jam akan bertambah 1 jam dan menit akan dikurang 60 menit. Tentunya struktur data ini dapat membantu kita untuk pemrosesan yang berhubungan dengan waktu. Akhir kata, Happy Coding! :D

- krofz

No comments:

Post a Comment

Maaf jika komentar anda lama terbitnya ^__^, penulis berusaha OL sesering mungkin. Komentar anda adalah semangat blog ini, dan juga semangat para blogger lainnya. You can use XHTML tags: <a href="" rel="link"> </a>, <strong> </strong>, <b> </b>, <em> </em>, <i> </i>.

Spesial character use :
&lt; for <
&gt; for >


Use Pastebin.com for alternative to display your code :) .

 

back to top

back to top