「駑馬十駕」を信念に IT系情報を中心に調べた事をコツコツ綴っています。

java.util.Date型ではcompareTo、after、beforeメソッドを使用して比較します。

「=、>、<」を明確に区別するためにcompareToメソッドが多く使用されている印象です。

compareToメソッドでの比較例

Javaソース

import java.util.Calendar;
import java.util.Date;

public class DateDiffSample {

	public static void main(String[] args) {
		Calendar cal1 = Calendar.getInstance();
		cal1.clear();
		cal1.set(2022, 7, 14, 00, 00, 00);
		Date date1 = cal1.getTime();
		
		Calendar cal2 = Calendar.getInstance();
		cal2.clear();
		cal2.set(2022, 7, 15, 00, 00, 00);
		Date date2 = cal2.getTime();

		System.out.println("date1.compareTo(date1):" + date1.compareTo(date1));
		System.out.println("date1.compareTo(date2):" + date1.compareTo(date2));
		System.out.println("date2.compareTo(date1):" + date2.compareTo(date1));
	}
}

コンソール

JavaDoc

afterメソッドでの比較例

Javaソース

import java.util.Calendar;
import java.util.Date;

public class DateDiffSample {

	public static void main(String[] args) {
		Calendar cal1 = Calendar.getInstance();
		cal1.clear();
		cal1.set(2022, 7, 14, 00, 00, 00);
		Date date1 = cal1.getTime();
		
		Calendar cal2 = Calendar.getInstance();
		cal2.clear();
		cal2.set(2022, 7, 15, 00, 00, 00);
		Date date2 = cal2.getTime();

		System.out.println("date1.after(date1):" + date1.after(date1));
		System.out.println("date1.after(date2):" + date1.after(date2));
		System.out.println("date2.after(date1):" + date2.after(date1));
	}
}

コンソール

JavaDoc

beforeメソッドでの比較例

Javaソース

import java.util.Calendar;
import java.util.Date;

public class DateDiffSample {

	public static void main(String[] args) {
		Calendar cal1 = Calendar.getInstance();
		cal1.clear();
		cal1.set(2022, 7, 14, 00, 00, 00);
		Date date1 = cal1.getTime();
		
		Calendar cal2 = Calendar.getInstance();
		cal2.clear();
		cal2.set(2022, 7, 15, 00, 00, 00);
		Date date2 = cal2.getTime();

		System.out.println("date1.before(date1):" + date1.before(date1));
		System.out.println("date1.before(date2):" + date1.before(date2));
		System.out.println("date2.before(date1):" + date2.before(date1));
	}
}

コンソール

JavaDoc

🔧補足:より精度が必要な場合について

今回の記事では Date クラスを使った日付比較や日数差分の取得方法を紹介しましたが、Date は古いAPIであり、細かいタイムゾーン管理やうるう年考慮、時間単位の厳密計算にはやや扱いづらい側面があります。

もし実務で時刻を含む精密な日付計算を行う場合や、日付操作が多いシステムを作る場合は、より新しい java.time パッケージ(LocalDate / LocalDateTime / ChronoUnit など)の利用を検討すると、コードが簡潔になり、意図も明確になります。

特に、Java 8以降では Date より新APIが標準的な書き方になってきていますので、用途に応じて適切な日付クラスを選択すると、保守性や可読性の向上につながります。

0 0
Article Rating
申し込む
注目する
guest
0 コメント一覧
最も古い
最新 高評価
インラインフィードバック
すべてのコメントを見る

Ads by Google

0 0
Article Rating
申し込む
注目する
guest
0 コメント一覧
最も古い
最新 高評価
インラインフィードバック
すべてのコメントを見る
0
あなたの考えが大好きです、コメントしてください。x