Di sini dibuat contoh menambahkan dan mengurangi sejumlah waktu (dalam berbagai satuan waktu) terhadap sebuah nilai bertipe data Date dalam Java.
Kita akan menambahkan/mengurangi hari, bulan, tahun, jam, menit, detik dan mili detik terhadap sebuah waktu yang bertipe Date.
Ini kelasnya:
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale; /* * @Author Firman Hidayat */ public class MenambahMengurangDate { // Method menambah dan mengurangi waktu protected static Calendar tambahWaktu(Date waktuPermulaan, int jmlTambahanWaktu, String satuan) { /* * Untuk mengurangi hari gunakan nilai minus (-) pada jmlTambahanWaktu */ Calendar cal = Calendar.getInstance(); cal.setTime(waktuPermulaan); switch (satuan) { case "hari": cal.add(Calendar.DATE, jmlTambahanWaktu); break; case "bulan": cal.add(Calendar.MONTH, jmlTambahanWaktu); break; case "tahun": cal.add(Calendar.YEAR, jmlTambahanWaktu); break; case "jam": cal.add(Calendar.HOUR, jmlTambahanWaktu); break; case "menit": cal.add(Calendar.MINUTE, jmlTambahanWaktu); break; case "detik": cal.add(Calendar.SECOND, jmlTambahanWaktu); break; case "milidetik": cal.add(Calendar.MILLISECOND, jmlTambahanWaktu); break; } return cal; } // Menampilkan Date terformat protected static String tampilkanTanggalDanWaktu(Date tanggalDanWaktu, String pola, Locale lokal) { String tanggalStr; SimpleDateFormat formatter; if (lokal == null) { formatter = new SimpleDateFormat(pola); } else { formatter = new SimpleDateFormat(pola, lokal); } tanggalStr = formatter.format(tanggalDanWaktu); return tanggalStr; } }
Berikut ini adalah kelas main yang memanggil kelas “MenambahMengurangDate” di atas.
import java.util.Calendar; import java.util.Date; import java.util.Locale; /* * @Author Firman Hidayat */ public class TestTambahKurangWaktu { /* * Untuk mengurangi hari gunakan nilai minus (-) pada jmlTambahanWaktu */ public static void main(String[] args) { Locale lokal = null; String pola = "dd/MM/yyyy HH:mm:ss:SSS"; Date waktuPermulaan = new Date(); int jmlTambahanWaktu = 5; String satuan = "hari"; // Menambah hari Calendar cal = MenambahMengurangDate.tambahWaktu(waktuPermulaan, jmlTambahanWaktu, satuan); String tanggalStr = MenambahMengurangDate.tampilkanTanggalDanWaktu( cal.getTime(), pola, lokal); System.out.println("(" + MenambahMengurangDate.tampilkanTanggalDanWaktu( waktuPermulaan, pola, lokal) + ") ditambah " + jmlTambahanWaktu + " " + satuan + " = " + tanggalStr); // Mengurangi hari jmlTambahanWaktu = -5978; satuan = "hari"; cal = MenambahMengurangDate.tambahWaktu(waktuPermulaan, jmlTambahanWaktu, satuan); tanggalStr = MenambahMengurangDate.tampilkanTanggalDanWaktu( cal.getTime(), pola, lokal); System.out.println("(" + MenambahMengurangDate.tampilkanTanggalDanWaktu( waktuPermulaan, pola, lokal) + ") ditambah " + jmlTambahanWaktu + " " + satuan + " = " + tanggalStr); // Menambah bulan jmlTambahanWaktu = 6; satuan = "bulan"; cal = MenambahMengurangDate.tambahWaktu(waktuPermulaan, jmlTambahanWaktu, satuan); tanggalStr = MenambahMengurangDate.tampilkanTanggalDanWaktu( cal.getTime(), pola, lokal); System.out.println("(" + MenambahMengurangDate.tampilkanTanggalDanWaktu( waktuPermulaan, pola, lokal) + ") ditambah " + jmlTambahanWaktu + " " + satuan + " = " + tanggalStr); // Mengurangi bulan jmlTambahanWaktu = -2; satuan = "bulan"; cal = MenambahMengurangDate.tambahWaktu(waktuPermulaan, jmlTambahanWaktu, satuan); tanggalStr = MenambahMengurangDate.tampilkanTanggalDanWaktu( cal.getTime(), pola, lokal); System.out.println("(" + MenambahMengurangDate.tampilkanTanggalDanWaktu( waktuPermulaan, pola, lokal) + ") ditambah " + jmlTambahanWaktu + " " + satuan + " = " + tanggalStr); // Menambah tahun jmlTambahanWaktu = 8; satuan = "tahun"; cal = MenambahMengurangDate.tambahWaktu(waktuPermulaan, jmlTambahanWaktu, satuan); tanggalStr = MenambahMengurangDate.tampilkanTanggalDanWaktu( cal.getTime(), pola, lokal); System.out.println("(" + MenambahMengurangDate.tampilkanTanggalDanWaktu( waktuPermulaan, pola, lokal) + ") ditambah " + jmlTambahanWaktu + " " + satuan + " = " + tanggalStr); // Mengurangi tahun jmlTambahanWaktu = -3; satuan = "tahun"; cal = MenambahMengurangDate.tambahWaktu(waktuPermulaan, jmlTambahanWaktu, satuan); tanggalStr = MenambahMengurangDate.tampilkanTanggalDanWaktu( cal.getTime(), pola, lokal); System.out.println("(" + MenambahMengurangDate.tampilkanTanggalDanWaktu( waktuPermulaan, pola, lokal) + ") ditambah " + jmlTambahanWaktu + " " + satuan + " = " + tanggalStr); // Menambah jam jmlTambahanWaktu = 12; satuan = "jam"; cal = MenambahMengurangDate.tambahWaktu(waktuPermulaan, jmlTambahanWaktu, satuan); tanggalStr = MenambahMengurangDate.tampilkanTanggalDanWaktu( cal.getTime(), pola, lokal); System.out.println("(" + MenambahMengurangDate.tampilkanTanggalDanWaktu( waktuPermulaan, pola, lokal) + ") ditambah " + jmlTambahanWaktu + " " + satuan + " = " + tanggalStr); // Mengurangi jam jmlTambahanWaktu = -27; satuan = "jam"; cal = MenambahMengurangDate.tambahWaktu(waktuPermulaan, jmlTambahanWaktu, satuan); tanggalStr = MenambahMengurangDate.tampilkanTanggalDanWaktu( cal.getTime(), pola, lokal); System.out.println("(" + MenambahMengurangDate.tampilkanTanggalDanWaktu( waktuPermulaan, pola, lokal) + ") ditambah " + jmlTambahanWaktu + " " + satuan + " = " + tanggalStr); // Menambah menit jmlTambahanWaktu = 78; satuan = "menit"; cal = MenambahMengurangDate.tambahWaktu(waktuPermulaan, jmlTambahanWaktu, satuan); tanggalStr = MenambahMengurangDate.tampilkanTanggalDanWaktu( cal.getTime(), pola, lokal); System.out.println("(" + MenambahMengurangDate.tampilkanTanggalDanWaktu( waktuPermulaan, pola, lokal) + ") ditambah " + jmlTambahanWaktu + " " + satuan + " = " + tanggalStr); // Mengurangi Menit jmlTambahanWaktu = -978; satuan = "menit"; cal = MenambahMengurangDate.tambahWaktu(waktuPermulaan, jmlTambahanWaktu, satuan); tanggalStr = MenambahMengurangDate.tampilkanTanggalDanWaktu( cal.getTime(), pola, lokal); System.out.println("(" + MenambahMengurangDate.tampilkanTanggalDanWaktu( waktuPermulaan, pola, lokal) + ") ditambah " + jmlTambahanWaktu + " " + satuan + " = " + tanggalStr); // Menambah detik jmlTambahanWaktu = 4536; satuan = "detik"; cal = MenambahMengurangDate.tambahWaktu(waktuPermulaan, jmlTambahanWaktu, satuan); tanggalStr = MenambahMengurangDate.tampilkanTanggalDanWaktu( cal.getTime(), pola, lokal); System.out.println("(" + MenambahMengurangDate.tampilkanTanggalDanWaktu( waktuPermulaan, pola, lokal) + ") ditambah " + jmlTambahanWaktu + " " + satuan + " = " + tanggalStr); // Mengurangi detik jmlTambahanWaktu = -3600; satuan = "detik"; cal = MenambahMengurangDate.tambahWaktu(waktuPermulaan, jmlTambahanWaktu, satuan); tanggalStr = MenambahMengurangDate.tampilkanTanggalDanWaktu( cal.getTime(), pola, lokal); System.out.println("(" + MenambahMengurangDate.tampilkanTanggalDanWaktu( waktuPermulaan, pola, lokal) + ") ditambah " + jmlTambahanWaktu + " " + satuan + " = " + tanggalStr); // Menambah milidetik jmlTambahanWaktu = 9823; satuan = "milidetik"; cal = MenambahMengurangDate.tambahWaktu(waktuPermulaan, jmlTambahanWaktu, satuan); tanggalStr = MenambahMengurangDate.tampilkanTanggalDanWaktu( cal.getTime(), pola, lokal); System.out.println("(" + MenambahMengurangDate.tampilkanTanggalDanWaktu( waktuPermulaan, pola, lokal) + ") ditambah " + jmlTambahanWaktu + " " + satuan + " = " + tanggalStr); // Mengurangi milidetik jmlTambahanWaktu = -2984569; satuan = "milidetik"; cal = MenambahMengurangDate.tambahWaktu(waktuPermulaan, jmlTambahanWaktu, satuan); tanggalStr = MenambahMengurangDate.tampilkanTanggalDanWaktu( cal.getTime(), pola, lokal); System.out.println("(" + MenambahMengurangDate.tampilkanTanggalDanWaktu( waktuPermulaan, pola, lokal) + ") ditambah " + jmlTambahanWaktu + " " + satuan + " = " + tanggalStr); } }
Output kelas tersebut seperti ini:
(06/04/2014 19:44:04:432) ditambah 5 hari = 11/04/2014 19:44:04:432 (06/04/2014 19:44:04:432) ditambah -5978 hari = 23/11/1997 19:44:04:432 (06/04/2014 19:44:04:432) ditambah 6 bulan = 06/10/2014 19:44:04:432 (06/04/2014 19:44:04:432) ditambah -2 bulan = 06/02/2014 19:44:04:432 (06/04/2014 19:44:04:432) ditambah 8 tahun = 06/04/2022 19:44:04:432 (06/04/2014 19:44:04:432) ditambah -3 tahun = 06/04/2011 19:44:04:432 (06/04/2014 19:44:04:432) ditambah 12 jam = 07/04/2014 07:44:04:432 (06/04/2014 19:44:04:432) ditambah -27 jam = 05/04/2014 16:44:04:432 (06/04/2014 19:44:04:432) ditambah 78 menit = 06/04/2014 21:02:04:432 (06/04/2014 19:44:04:432) ditambah -978 menit = 06/04/2014 03:26:04:432 (06/04/2014 19:44:04:432) ditambah 4536 detik = 06/04/2014 20:59:40:432 (06/04/2014 19:44:04:432) ditambah -3600 detik = 06/04/2014 18:44:04:432 (06/04/2014 19:44:04:432) ditambah 9823 milidetik = 06/04/2014 19:44:14:255 (06/04/2014 19:44:04:432) ditambah -2984569 milidetik = 06/04/2014 18:54:19:863
Format Tanggal dan Waktu dalam Java
Konversi String dan Time Stamp Menjadi Date dalam Java
Menambah dan Mengurangi Tanggal dan Waktu dalam Java
Menghitung Selisih Tanggal dan Waktu dalam Java
Format Bilangan dan Mata Uang dalam Java
thanks..mantab..
LikeLike