Menghitung Jumlah Hari

Menghitung Jumlah Hari

Judulnya mirip lagunya Krisdayanti (KD) “Menghitung Hari” yang sempat ngetop beberapa waktu lalu. Menghitung jumlah hari ini adalah sebuah algoritma sederhana untuk menampilkan jumlah hari berdasarkan bulan yang dimasukkan. Misalkan jika dimasukkan bulan 1 artinya bulan Januari maka jumlah  harinya 31, jika dimasukkan 4, bulan April dan jumlah hari 30, dan seterusnya. Sangat sederhana tapi ada yang khusus tentang ini, yaitu jika dimasukkan bulan 2 yang artinya bulan Februari maka jumlah bisa 28 atau 29 jika tahun kabisat.

Tahun kabisat menurut Wikipedia :

Tahun Kabisat (Bahasa Inggris: Leap Year) adalah sebuah Tahun Syamsiah di mana pada tahun tersebut jumlah hari tidak terdiri dari 365 hari tetapi 366 hari.
Satu tahun syamsiah tidak secara persis terdiri dari 365 hari, tetapi 365 hari, 5 jam, 48 menit dan 45,1814 detik. Jika hal ini tidak dihiraukan, maka setiap empat tahun akan kekurangan hampir satu hari.
Maka untuk mengkompensasi hal ini setiap empat tahun sekali (tahun yang bisa dibagi empat), diberi satu hari ekstra: 29 Februari. Tetapi karena 5 jam, 48 menit dan 45,1814 detik kurang dari 6 jam, maka tahun-tahun yang bisa dibagi 100 (seperti tahun 1900), bukan tahun kabisat, kecuali bisa dibagi dengan 400 (seperti tahun 2000).
Terdapat algoritma mudah untuk menentukan apakah suatu tahun termasuk tahun kabisat atau bukan:

  1. Pertama, jika angka tahun itu habis dibagi 400, maka tahun itu sudah pasti tahun kabisat.
  2. Kedua, jika angka tahun itu tidak habis dibagi 400 tetapi habis dibagi 100, maka tahun itu sudah pasti bukan merupakan tahun kabisat.
  3. Ketiga, jika angka tahun itu tidak habis dibagi 400, tidak habis dibagi 100 akan tetapi habis dibagi 4, maka tahun itu merupakan tahun kabisat.
  4. Jika angka tahun tidak habis dibagi 400, tidak habis dibagi 100, dan tidak habis dibagi 4, maka tahun tersebut bukan merupakan tahun kabisat.

Tahun Kabisat menurut definisi ini ada sejak diluncurkannya kalender Gregorian.

Bagaimana menterjemahkan algoritma tahun kabisat yang unik ini plus dikaitkan dalam menghitung jumlah hari dalam bahasa pemrograman Java, berikut adalah potongan programnya :

System.out.print("Masukkan Bulan : ");
            Scanner input = new Scanner(System.in);
            int bulan = input.nextInt();
            System.out.print("Masukkan Tahun : ");
            Scanner input2 = new Scanner(System.in);
            int tahun = input.nextInt();
            int x = 0;
            switch (bulan) {
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12:
                    x = 31;
                    break;
                case 4:
                case 6:
                case 9:
                case 11:
                    x = 30;
                    break;
                case 2:
                    if ((tahun % 400 == 0) || ((tahun % 100 > 0) && (tahun % 4 == 0))) {
                        x = 29;
                    } else {
                        x = 28;
                    }
                    break;
                default:
                    System.out.println("Silakan pilih 1,2,3 s.d 12");
            }

Untuk program lengkapnya dapat diunduh di bagian Download atau klik aja [download id=”13″]

Sumber gambar : disini

Share this post

Comments (6)

  • prof. helga Reply

    waah ternyata tentang pemrograman java
    boleh juga nih dicoba

    udah lama ga ngutak ngatik java

    May 6, 2010 at 8:53 pm
  • bayu satriyawan Reply

    keduaxxxx

    Pak, kalo ditulis pascal yo opo???

    Hm….

    Tau ga? baru sadar saya, kalo di setiap tahun cuma ada 4 bulan yang 30 hari.
    Wakakakaka…

    Pantes, gajian lama banget….

    May 8, 2010 at 1:08 am
  • dhedhi Reply

    wah, makasih pak sharingnya. moga ilmunya dapat berguna untuk banyak orang 🙂

    May 10, 2010 at 3:19 am
  • noto Reply

    Wah, baru tahu kalau difinisi dari tahun kabisat kayak itu.
    Makasih infonya

    May 11, 2010 at 4:54 pm
  • elmoudy Reply

    wah.. ilmu coding… berraaat.
    untungnya sudah ada tools gratisan yaa.. tinggal donlod ajaah

    May 12, 2010 at 3:32 am
  • Mixo Tekno Reply

    Wah mantap bang langsung saya coba

    September 12, 2017 at 3:02 pm

Leave a Reply

Your email address will not be published. Required fields are marked *