Social Icons

google plustwitterfacebookinstagramlinkedinrss feedcontact me

Selasa, 14 April 2015

Mengetahui Jumlah Hari Dalam Bulan

Pada postingan sebelumnya yang berjudul Menghitung Umur, saya sudah pernah memberikan trik untuk mendapatkan jumlah hari dalam satu bulan, dimana pada postingan tersebut inti dari triknya adalah dengan membuat sebuah tanggal temporer berupa tanggal 1 dari bulan berikutnya lalu menguranginya dengan 1 hari sehingga didapatkan tanggal terakhir dari bulan yang ingin kita ketahui jumlah harinya (dalam hal ini tanggal terakhir tersebut merupakan jumlah hari dalam bulan tersebut).

Pada postingan kali ini saya akan berikan trik lainnya(alternatif) untuk mengetahui jumlah hari dalam satu bulan. pada trik kali ini kita akan menggunakan array dan pengecekan tahun kabisat. Sedikit penjelasan, untuk mengecek apakah sebuah tahun itu merupakan tahun kabisat, bisa dilakukan dengan kriteria sebagai berikut:

  1. Jika tahun dibagi dengan 400 hasilnya bulat maka sudah pasti tahun tersebut adalah tahun kabisat
  2. Jika tahun dibagi 400 hasilnya tidak bulat, tetapi jika dibagi 100 hasilnya bulat maka tahun tersebut bukanlah tahun kabisat
  3. Jika tahun dibagi 400 dan dibagi 100 hasilnya tidak bulat, tetapi jika dibagi 4 hasilnya bulat maka tahun tersebut adalah tahun kabisat
  4. Jika tahun dibagi 400 dan dibagi 100 hasilnya tidak bulat, dan jika dibagi 4 hasilnya tidak bulat maka tahun tersebut bukanlah tahun kabisat

(sumber: wikipedia)
Kriteria diatas akan digunakan jika bulan yang sedang ingin kita ketahui jumlah harinya adalah bulan 2 (Februari), selain bulan Februari maka kriteria diatas akan dilewati.

Untuk lebih mudahnya trik ini akan saya buat dalam sebuah Global Function dengan strukturnya sebagai berikut:
Nama Function: gf_jumlah_hari
Return Value: Integer
Argument1: ai_bulan (Integer)
Argument2: ai_tahun (Integer)

Dan berikut adalah script codingnya:
integer li_hari[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
integer li_return

li_return = li_hari[ai_bulan]

IF ai_bulan = 2 THEN
IF Mod(ai_tahun, 400) = 0 THEN
// jika tahun habis dibagi 400 berarti tahun kabisat
li_return = 29
ELSEIF Mod(ai_tahun, 100) = 0 THEN
// jika tahun tidak habis dibagi 400 tetapi habis dibagi 100 berarti bukan tahun kabisat
li_return = li_return
ELSEIF Mod(ai_tahun, 4) = 0 THEN
// jika tahun tidak habis dibagi 400 dan tidak habis dibagi 100 tetapi habis jika dibagi 4 berarti tahun kabisat
li_return = 29
ELSE
// jika tahun tidak habis dibagi 400 dan tidak habis dibagi 100 dan tidak habis dibagi 4 berarti bukan tahun kabisat
li_return = li_return
END IF
END IF

Return li_return

Simpan function diatas, untuk memanggilnya bisa dengan cara sebagai berikut:
integer li_hari

li_hari = gf_jumlah_hari(Month(Today()), Year(Today())
atau
li_hari = gf_jumlah_hari(1, 2015) (Jumlah hari dalam bulan Januari 2015)
atau 
li_hari = gf_jumlah_hari(2, 2014) (Jumlah hari dalam bulan Februari 2014)

dan seterusnya.
Demikianlah trik ini, semoga bermanfaat.

Akhir kata, semoga sukses untuk semua yang sedang dan akan anda lakukan.

Tidak ada komentar:

Posting Komentar

Silahkan berikan komentar anda.

 

Term Of Service

Untuk mengetahui tentang penggunaan blog ini, silahkan buka halaman Term Of Service atau klik TOS untuk langsung membuka halaman Term Of Service

Privacy Policy

Untuk mengetahui kebijakan privacy dalam blog ini, silahkan buka halaman Privacy Policy atau klik Disini untuk langsung membuka halaman Privacy Policy