JavaのDateクラスで日付の比較をする方法
スポンサーリンク
DateクラスのcompareToメソッド
Dateクラスに用意されているcompareToメソッドで日付の比較をすることができます。
- 引数Dateと等しい場合は 0
- 引数Dateより前の場合は -1
- 引数Dateより後の場合は 1
具体的な使い方は次の通りです。
package main; import java.util.Calendar; import java.util.Date; public class DateComparison { public static void main(String[] args) { // 2020年4月1日 Calendar cal1 = Calendar.getInstance(); cal1.set(2020, 3, 1, 0, 0, 0); cal1.clear(Calendar.MILLISECOND); Date date1 = cal1.getTime(); // 2020年4月2日 Calendar cal2 = Calendar.getInstance(); cal2.set(2020, 3, 2, 0, 0, 0); cal2.clear(Calendar.MILLISECOND); Date date2 = cal2.getTime(); // 同じ日付の比較 System.out.println("同じ日付の比較:" + date1.compareTo(date1)); // 異なる日付の比較 System.out.println("過去日.compareTo(未来日):" + date1.compareTo(date2)); System.out.println("未来日.compareTo(過去日):" + date2.compareTo(date1)); } }
【実行結果】
同じ日付の比較:0 過去日.compareTo(未来日):-1 未来日.compareTo(過去日):1
if文で比較する際の使用例は次の通りです。
// date1 == date2 if (date1.compareTo(date2) == 0) { System.out.println("同じ日付"); } // date1 > date2 if (date1.compareTo(date2) > 0) { System.out.println("date2超過"); } // date1 >= date2 if (date1.compareTo(date2) >= 0) { System.out.println("date2以上"); } // date1 < date2 if (date1.compareTo(date2) < 0) { System.out.println("date2未満"); } // date1 <= date2 if (date1.compareTo(date2) <= 0) { System.out.println("date2以下"); }
Dateクラスのbeforeメソッド
Dateクラスに用意されているbeforeメソッドで日付の比較をすることができます。beforeメソッドでは引数で指定された日付より前にあるかどうかを判定します。
- 引数Dateより前の場合は true
- 引数Dateより後の場合は false
具体的な使い方は次の通りです。
package main; import java.util.Calendar; import java.util.Date; public class DateComparison2 { public static void main(String[] args) { // 2020年4月1日 Calendar cal1 = Calendar.getInstance(); cal1.set(2020, 3, 1, 0, 0, 0); cal1.clear(Calendar.MILLISECOND); Date date1 = cal1.getTime(); // 2020年4月2日 Calendar cal2 = Calendar.getInstance(); cal2.set(2020, 3, 2, 0, 0, 0); cal2.clear(Calendar.MILLISECOND); Date date2 = cal2.getTime(); // 同じ日付の比較 System.out.println("同じ日付の比較:" + date1.before(date1)); // 異なる日付の比較 System.out.println("過去日.before(未来日):" + date1.before(date2)); System.out.println("未来日.before(過去日):" + date2.before(date1)); } }
【実行結果】
同じ日付の比較:false 過去日.before(未来日):true 未来日.before(過去日):false
Dateクラスのafterメソッド
Dateクラスに用意されているafterメソッドで日付の比較をすることができます。afterメソッドでは引数で指定された日付より後にあるかどうかを判定します。
- 引数Dateより前の場合は false
- 引数Dateより後の場合は true
具体的な使い方は次の通りです。
package main; import java.util.Calendar; import java.util.Date; public class DateComparison3 { public static void main(String[] args) { // 2020年4月1日 Calendar cal1 = Calendar.getInstance(); cal1.set(2020, 3, 1, 0, 0, 0); cal1.clear(Calendar.MILLISECOND); Date date1 = cal1.getTime(); // 2020年4月2日 Calendar cal2 = Calendar.getInstance(); cal2.set(2020, 3, 2, 0, 0, 0); cal2.clear(Calendar.MILLISECOND); Date date2 = cal2.getTime(); // 同じ日付の比較 System.out.println("同じ日付の比較:" + date1.after(date1)); // 異なる日付の比較 System.out.println("過去日.before(未来日):" + date1.after(date2)); System.out.println("未来日.before(過去日):" + date2.after(date1)); } }
【実行結果】
同じ日付の比較:false 過去日.before(未来日):false 未来日.before(過去日):true
helpful
この記事は役に立ちましたか?