java.util.Calendarよくある使い方 - Calendarによる日付・日時を比較する
2009/02/26 19:02更新
java.util.CalendarはJava日付・時刻を扱うための便利なクラスです。Calendarによる日付・日時を比較する方法について学びます。
Calendarによる日付・日時を比較する例
サンプルコード
TestCalendar.javaimport java.util.Calendar;
public class TestCalendar {
/**
* java.util.Calendar
* Java Calendarによる日付・日時を比較する
* java.util.Calendarクラスに日付・日時 の比較関連のメソッド:
* 1)boolean after(Object when)
* この Calendar が、指定された Object の表す時刻より後の時刻を表すかどうかを返します。
* 2)boolean after(Object when)
* この Calendar が、指定された Object の表す時刻より前の時刻を表すかどうかを返します。
* 3)int compareTo(Calendar anotherCalendar)
* 2 つの Calendar オブジェクトで表される時刻値 (エポックからのミリ秒単位のオフセット) を比較します。
* 4)boolean equals(Object obj)
* 指定された Object と比較します。
*
*/
public static void main(String[] args) {
Calendar calendar1 = Calendar.getInstance();
Calendar calendar2 = Calendar.getInstance();
Calendar calendar3 = Calendar.getInstance();
//************日時設定***************
//2000年11月20日を設定します。設定しなかった時、分、秒、ミリ秒などは、0ではなく実行時の時、分、秒、ミリ秒値になります。
calendar1.set(2000, 10, 20, 10, 15, 900);
calendar2.set(2008, 1, 25, 14, 25, 950);
calendar3.set(2000, 10, 20, 10, 15, 900);
System.out.println("************日付・日時比較***************");
System.out.println("日付calendar1:" + calendar1.getTime() + "[" + calendar1.getTimeInMillis() + "]");
System.out.println("日付calendar2:" + calendar2.getTime() + "[" + calendar2.getTimeInMillis() + "]");
System.out.println("日付calendar2:" + calendar3.getTime() + "[" + calendar3.getTimeInMillis() + "]\r\n");
//Calendar.afterメソッド
boolean ret1 = calendar1.after(calendar2);
System.out.println("日付calendar1は日付calendar2より 後である" + ret1);
boolean ret2 = calendar1.after(calendar3);
System.out.println("日付calendar1は日付calendar3より 後である" + ret2);
//Calendar.beforeメソッド
boolean ret3 = calendar1.before(calendar2);
System.out.println("日付calendar1は日付calendar2より 前である" + ret3);
boolean ret4 = calendar1.before(calendar3);
System.out.println("日付calendar1は日付calendar3より 前である" + ret4);
//Calendar.compareToメソッド
int ret5 = calendar1.compareTo(calendar2);
System.out.println("日付calendar1は日付calendar2より :" + ret5);
int ret6 = calendar1.compareTo(calendar3);
System.out.println("日付calendar1は日付calendar3より :" + ret6);
//Calendar.equalsメソッド
boolean ret7 = calendar1.equals(calendar2);
System.out.println("日付calendar1と日付calendar2は等しいか:" + ret7);
boolean ret8 = calendar1.equals(calendar3);
System.out.println("日付calendar1と日付calendar3は等しいか:" + ret8);
}
}
実行結果
************日付・日時比較***************
日付calendar1:Mon Nov 20 10:30:00 JST 2000[974683800806]
日付calendar2:Mon Feb 25 14:40:50 JST 2008[1203918050806]
日付calendar2:Mon Nov 20 10:30:00 JST 2000[974683800806]
日付calendar1は日付calendar2より 後であるfalse
日付calendar1は日付calendar3より 後であるfalse
日付calendar1は日付calendar2より 前であるtrue
日付calendar1は日付calendar3より 前であるfalse
日付calendar1は日付calendar2より :-1
日付calendar1は日付calendar3より :0
日付calendar1と日付calendar2は等しいか:false
日付calendar1と日付calendar3は等しいか:true
日付calendar1:Mon Nov 20 10:30:00 JST 2000[974683800806]
日付calendar2:Mon Feb 25 14:40:50 JST 2008[1203918050806]
日付calendar2:Mon Nov 20 10:30:00 JST 2000[974683800806]
日付calendar1は日付calendar2より 後であるfalse
日付calendar1は日付calendar3より 後であるfalse
日付calendar1は日付calendar2より 前であるtrue
日付calendar1は日付calendar3より 前であるfalse
日付calendar1は日付calendar2より :-1
日付calendar1は日付calendar3より :0
日付calendar1と日付calendar2は等しいか:false
日付calendar1と日付calendar3は等しいか:true
参考資料
java.util.Calendar API仕様(Javadoc)
Sponsored Link
コメント
- 関連記事
- Java開発及び実行環境の構築 | Linux篇 - (2008/08/31 20:34)
- Java開発及び実行環境の構築 | Windows篇 - (2008/08/31 21:18)
- 5分でJava Hello World! - (2008/08/31 22:13)
- Java言語の制御構文 - 条件分岐if/else/else if - (2008/10/01 21:30)
- Java言語の繰り返し制御構文 - for文 - (2008/10/03 18:22)
- Java言語の繰り返し制御構文 - do ... while文 - (2008/10/03 21:23)
- Java言語の繰り返し制御構文 - while文 - (2008/10/03 21:32)
- Java言語の基礎 - javacコマンドによるコンパイル - (2008/10/10 17:58)
- Java アクセス修飾子概要 - (2008/10/29 18:31)
- Javaアノテーション機能 概要 - (2009/02/12 13:06)