| 目次 |
|---|
|
・日付の比較 ・日付の計算 |
package jp.co.confrage;
import java.util.Calendar;
public class Test002 {
public static void main(String[] args) {
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.set(2011,0,1);
cal2.set(2011,0,2);
if(cal1.compareTo(cal2) == 0){
System.out.println("同一日付です");
}else{
System.out.println("同一日付ではありません");
}
}
}
Calendarクラスのコンストラクタはprotectedされているため、newできません。上記のようにファクトリメソッドよりインスタンス生成します。Calendar cal = Calendar.getInstance();Calendarクラスのインスタンスを生成し、setメソッドを使用します。
Calendar cal = Calendar.getInstance(); cal.set(2011,0,1);これで20110101をセットしたことになります。年月日の順でセットしますが、月だけ0~11になります。
Calendar cal = Calendar.getInstance(); cal.set(2011,0,1); cal.add(Calendar.DATE,-3);これでマイナス3日しています。あとはcalendar.getTime()で日付取得することができます。
String ymd = "20110101";
Calendar cal = Calendar.getInstance();
cal.set(Integer.parseInt(ymd.substring(0,4)),
Integer.parseInt(ymd.substring(4,6)) - 1,
Integer.parseInt(ymd.substring(6,8)));
cal.add(Calendar.DATE,-3);
SimpleDataFormat sdf = new SimpleDataFormat("yyyyMMdd");
String date = sdf.format(calendar.getTime());
System.out.println(date);