import java.util.Scanner;
/**
*
* @author Yudi Setiawan
*
*/
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Waktu Awal");
System.out.print("Input Jam : "); String str_jam_awal = scan.nextLine();
System.out.print("Input Menit : "); String str_menit_awal = scan.nextLine();
System.out.print("Input Detik : "); String str_detik_awal = scan.nextLine();
System.out.println("\nWaktu Akhir");
System.out.print("Input Jam : "); String str_jam_akhir = scan.nextLine();
System.out.print("Input Menit : "); String str_menit_akhir = scan.nextLine();
System.out.print("Input Detik : "); String str_detik_akhir = scan.nextLine();
String str_waktu_awal = str_jam_awal+":"+str_menit_awal+":"+str_detik_awal;
String str_waktu_akhir = str_jam_akhir+":"+str_menit_akhir+":"+str_detik_akhir;
System.out.println("Waktu Awal : "+str_waktu_awal);
System.out.println("Waktu Akhir : "+str_waktu_akhir);
int jam_awal = Integer.parseInt(str_jam_awal);
int jam_akhir = Integer.parseInt(str_jam_akhir);
int menit_awal = Integer.parseInt(str_menit_awal);
int menit_akhir = Integer.parseInt(str_menit_akhir);
int detik_awal = Integer.parseInt(str_detik_awal);
int detik_akhir = Integer.parseInt(str_detik_akhir);
int selisih_detik = 0;
if(detik_awal > detik_akhir) {
while(detik_awal != detik_akhir) {
if(detik_awal == 60) {
detik_awal = 0;
menit_awal++;
continue;
}
detik_awal++;
selisih_detik++;
}
}
else if(detik_awal < detik_akhir) {
selisih_detik = detik_akhir - detik_awal;
}
int selisih_waktu = selisih_detik;
int selisih_menit = 0;
if(menit_awal > menit_akhir) {
while(menit_awal != menit_akhir) {
if(menit_awal == 60) {
menit_awal = 0;
jam_awal++;
continue;
}
menit_awal++;
selisih_menit++;
}
}
else if(menit_awal < menit_akhir) {
selisih_menit = menit_akhir - menit_akhir;
}
selisih_waktu += selisih_menit * 60;
int selisih_jam = 0;
if(jam_awal > jam_akhir) {
while(jam_awal != jam_akhir) {
if(jam_awal == 24) {
jam_awal = 0;
continue;
}
jam_awal++;
selisih_jam++;
}
}
else if(jam_awal < jam_akhir)
selisih_jam = jam_akhir - jam_awal;
selisih_waktu += selisih_jam * 3600;
System.out.println("Selisih antara waktu awal dan waktu akhir (detik) : "+selisih_waktu);
int jam = selisih_waktu / 3600;
selisih_waktu %= 3600;
int menit = 0;
int detik = 0;
if(selisih_waktu >= 60) {
menit = selisih_waktu / 60;
detik = selisih_waktu % 60;
} else {
menit = 0;
detik = selisih_waktu;
}
String waktu = jam+":"+menit+":"+detik;
System.out.println("Selisih antara waktu awal dan waktu akhir (HH:mm:ss) : "+waktu);
}
}
OUTPUT:
Bisa juga menggunakan code sbb:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Scanner;
import org.joda.time.DateTime;
import org.joda.time.Seconds;
/**
*
* @author Yudi Setiawan
*
*/
public class Main2 {
public static void main(String[] args) throws ParseException {
// SimpleDateFormat
SimpleDateFormat sdfTime = new SimpleDateFormat("HH:mm:ss");
// Scanner
Scanner scan = new Scanner(System.in);
// Input Waktu Awal
System.out.println("Waktu Awal");
System.out.print("Input Jam : "); String waktu_awal = scan.nextLine()+":";
System.out.print("Input Menit : "); waktu_awal += scan.nextLine()+":";
System.out.print("Input Detik : "); waktu_awal += scan.nextLine();
// Input Waktu Akhir
System.out.println("\nWaktu Akhir");
System.out.print("Input Jam : "); String waktu_akhir = scan.nextLine()+":";
System.out.print("Input Menit : "); waktu_akhir += scan.nextLine()+":";
System.out.print("Input Detik : "); waktu_akhir += scan.nextLine();
// Ubah waktu awal dan waktu akhir menjadi DateTime
DateTime dtAwal = new DateTime(sdfTime.parse(waktu_awal));
DateTime dtAkhir = new DateTime(sdfTime.parse(waktu_akhir));
// Tampilkan waktu awal dan waktu akhir
System.out.println();
System.out.println("Waktu Awal : "+waktu_awal);
System.out.println("Waktu Akhir : "+waktu_akhir);
// proses cari selisih waktu dalam satuan detik
// 10:50:20 - 11:30:50
int selisih_detik = Math.abs(Seconds.secondsBetween(dtAwal, dtAkhir).getSeconds());
System.out.println("Selisih waktu awal dan waktu akhir (detik) : "+selisih_detik);
// Ubah selisih detik menjadi format HH:mm:ss
int jam = selisih_detik / 3600;
selisih_detik %= 3600;
int menit = 0;
int detik = 0;
if(selisih_detik >= 60) {
menit = selisih_detik / 60;
detik = selisih_detik % 60;
} else {
detik = selisih_detik;
}
// Tampilkan selisih waktu dalam format HH:mm:ss
String selisih_waktu = jam+":"+menit+":"+detik;
System.out.println("Selisih waktu awal dan waktu akhir (HH:mm:ss) : "+selisih_waktu);
}
}
public static void main(String[] args) {
Scanner Input = new Scanner (System.in);
System.out.println ("syarat -j2 harus lebih besar dari j1. -nilai keduanya tidak boleh nol");
System.out.print("Jam 1 =");
int j1 = Input.nextInt();
System.out.print("Menit 1 =");
int m1 = Input.nextInt();
System.out.print("Detik 1 =");
int d1 = Input.nextInt();
System.out.print("Jam 2 =");
int j2 = Input.nextInt();
System.out.print("Menit 2 =");
int m2 = Input.nextInt();
System.out.print("Detik 2 =");
int d2 = Input.nextInt();
int j3, sisa, m3, d3;
int waktu1, waktu2, selisih;
waktu1 = (3600*j1)+(60*m1)+d1;
waktu2 = (3600*j2)+(60*m2)+d2;
selisih = waktu2-waktu1;
j3 = selisih/3600;
sisa = selisih%3600;
m3 = sisa/60;
d3 = sisa%60;
System.out.println ("MENGHITUNG SELISIH WAKTU");
System.out.println ("========================");
System.out.println ("\nWaktu Pertama = "+j1+":"+m1+":"+d1);
System.out.println ("Waktu Kedua = "+j2+":"+m2+":"+d2);
System.out.println ("\nSelisih Waktu = "+j3+":"+m3+":"+d3);
}
}
reff:
http://jagocoding.com/tutorial/1197/Cara_Mencari_Selisih_Waktu_di_Java