Anda di halaman 1dari 5

package cobatanggal;

import java.util.Date;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Scanner;

public class CobaTanggal {


public static void main(String[] args) throws ParseException {
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
Scanner su = new Scanner (System.in);

long castor, pollux, dioscuri, gemini, rudolph, dasher, comet, prancer;


String name, orthrus, santa;

System.out.println("Selamat datang! Ini adalah program untuk menghitung usia


Anda");

do {
System.out.println("Silakan masukkan nama Anda!");
name = su.nextLine();

System.out.println("Nama yang bagus! Sekarang, masukkan tanggal lahir


Anda!");
System.out.println("(p.s.: mohon masukkan dengan format dd/mm/yyyy)");
orthrus = su.nextLine ();
//input tanggal lahir

System.out.println(" ");
System.out.println("Baiklah, biar kami hitung!");
System.out.println(" ");
System.out.println("Jangan lupa, tanggal hari ini adalah:");

Date datecur = new Date();


//fungsi yang dipakai untuk menunjukkan tanggal hari ini, nama variabel
'datecur'
System.out.println(df.format(datecur));
//untuk mencetak tanggal hari ini (datecur) dengan format 'df'

castor = datecur.getTime();
//fungsi untuk mendapatkan berapa milisekon yang sudah berlalu sejak 1
Januari 1970 sampai tanggal hari ini (datecur)
//nama variabel 'castor'

Date cerberus = new SimpleDateFormat("dd/MM/yyyy").parse(orthrus);


//karena tanggal lahir yang diinput masih memilki tipe data berupa
String, maka harus diubah menjadi Date
//di sini, variabel 'orthrus' (yang masih berupa String) berubah menjadi
'cerberus' (yang sudah menjadi Date)
//.parse sendiri untuk menjabarkan secara detail tanggal yang diinput
(orthrus), mulai dari hari sampai ke zona waktu
pollux = cerberus.getTime();
//fungsi untuk mendapatkan berapa milisekon yang sudah berlalu sejak 1
Januari 1970 sampai tanggal lahir yang diinput (cerberus)

dioscuri = castor - pollux;


//untuk mengetahui selisih berapa milisekon yang sudah berlalu sejak
tanggal lahir yang diinput sampai tanggal hari ini
//dengan kata lain, fungsi untuk mengetahui usia, yang dinyatakan dalam
milisekon
gemini = dioscuri/(1000*3600*24);
//fungsi untuk mengubah usia yang semula diyatakan dalam milisekon
menjadi hari
//1 detik = 1000 milisekon; 1 jam = 3600 detik; 1 hari = 24 jam;
System.out.println(" ");
System.out.println("Baiklah! Sudah kami hitung!");
System.out.println(" ");
System.out.println("Nama Anda adalah : " + name);
System.out.print("Anda lahir pada tanggal : " );

if (gemini >= 365) {


//memasukkan kondisi untuk jumlah usia yang >= 1 tahun
if (gemini % 365 != 0) {
//memasukkan kondisi jika usia tidak genap dalam tahun (ada lebih
sekian bulan dan/atau sekian hari)
rudolph = gemini % 365;
//'rudolph' adalah sisa usia yang tidak genap 1 tahun
//misal, usianya 14 tahun 5 bulan 21 hari
//'rudolph' adalah 5 bulan 21 hari
dasher = (gemini - rudolph)/365;
//'dasher' adalah usia yang hanya dinyatakan dalam tahun
//misal, usianya 14 tahun 5 bulan 21 hari
//'dasher' adalah 14 tahun
if (rudolph >=30 && rudolph % 30 != 0) {
//memasukkan kondisi jika sisa usia yang tadi tidak genap
sekian tahun, tidak genap sekian bulan (ada lebih sekian hari)
comet = rudolph % 30;
//misal, usianya 14 tahun 5 bulan 21 hari
//'rudolph' adalah 5 bulan 21 hari
//sementara 'comet' adalah 21 hari
prancer = (rudolph - comet)/30;
//'prancer' adalah sisa usia yang hanya dinyatakan dalam
bulan
//misal, sisa usia 5 bulan 21 hari
//'prancer' adalah 5 bulan
System.out.println(dasher + " tahun " + prancer + " bulan " +
comet + " hari ");
}
else if (rudolph >= 30 && rudolph % 30 == 0) {
//memasukkan kondisi jika sisa usia yang tidak genap sekian
tahun, tapi genap sekian bulan
prancer = rudolph/30;
System.out.println(dasher + " tahun " + prancer + " bulan ");
}
else {
//memasukkan kondisi jika sisa usia yang tidak genap sekian
tahun, tapi tidak sampai 1 bulan
System.out.println(dasher + " tahun " + rudolph + " hari ");
}
}
else if (gemini % 365 == 0){
//memasukkan kondisi jika usia genap sekian tahun (tidak ada sisa
bulan atau hari)
System.out.println(gemini/365 + " tahun ");
}
}
else {
//memasukkan kondisi jika usia tidak mencapai 1 tahun
if (gemini >=30 && gemini % 30 != 0) {
rudolph = gemini % 30;
dasher = (gemini - rudolph)/30;
System.out.println(dasher + " bulan " + rudolph + " hari ");
}
else if (gemini >= 30 && gemini % 30 == 0) {
rudolph = gemini/30;
System.out.println(rudolph + " bulan ");
}
else {
System.out.println(gemini + " hari");
}
}
System.out.println(" ");
System.out.println("Bagaimana? Keren 'kan? Mau mulai lagi?");
santa = su.nextLine();
}
while (santa.equalsIgnoreCase("Ya")||
santa.equalsIgnoreCase("Iya")||
santa.equalsIgnoreCase("Yes")||
santa.equalsIgnoreCase("Y"));

System.out.println("Senang bertemu Anda! Semoga kita bisa bertemu lagi di


lain waktu!");
}
}

Anda mungkin juga menyukai