このページには、以下のサンプルを掲載しています。
下の項目をクリックをすると各サンプルにジャンプします。
※2週間以内の新着記事はNewアイコン、更新記事はUpアイコンが表示されます。
[ サンプルプログラムのソースコード - DateSample01.java - ]
| 
package sample.caldate;import java.util.Calendar;public class DateSample01 {  public static void main(String[] args) {        Calendar cal = Calendar.getInstance();    cal.set(2009, Calendar.APRIL, 25, 6, 44, 0);    int day = 100;    System.out.print( String.format(       "%1$tY年 %1$tB %1$te日 %1$ta曜日の%2$d日後は、",cal,day));    cal.add(Calendar.DAY_OF_YEAR, day);    System.out.println( String.format(        "%1$tY年 %1$tB %1$te日 %1$ta曜日です。", cal));  }} | 
[ サンプルプログラムの実行結果 ]
2009年 4月 25日 土曜日の100日後は、2009年 8月 3日 月曜日です。
[ サンプルプログラムの解説 ]
日にちの加算を行うには、Calendarクラスのaddメソッドを使います。
第一引数で、加算を行うフィールドを指定します。上記サンプルでは、
1年の内の何日目かを現すフィールド「DAY_OF_YEAR」を指定しています。
第二引数には、加算を行う日数を指定しています。
 
2. ある日付のN日前
[ サンプルプログラムのソースコード - DateSample02.java - ]
| 
package sample.caldate;import java.util.Calendar;public class DateSample02 {  public static void main(String[] args) {        Calendar cal = Calendar.getInstance();    cal.set(2009, Calendar.APRIL, 25, 6, 44, 0);    int day = 100;    System.out.print( String.format(       "%1$tY年 %1$tB %1$te日 %1$ta曜日の%2$d日前は、",cal,day));    cal.add(Calendar.DAY_OF_YEAR, -day);    System.out.println( String.format(      "%1$tY年 %1$tB %1$te日 %1$ta曜日です。", cal));  }} | 
[ サンプルプログラムの実行結果 ]
2009年 4月 25日 土曜日の100日前は、2009年 1月 15日 木曜日です。
[ サンプルプログラムの解説 ]
サンプル「ある日付のN日後」とほとんど同じですが、addメソッドの第二引数でマイナスの数値
を与えるとN日前の計算ができます。
 
3. ある日付からある日付の間の日数
[ サンプルプログラムのソースコード - DateSample03.java - ]
| 
package sample.caldate;import java.util.Calendar;public class DateSample03 {  public static void main(String[] args) {        Calendar cal1 = Calendar.getInstance();    Calendar cal2 = Calendar.getInstance();    cal1.set(2009, Calendar.MAY, 22, 0, 0, 0);    cal2.set(2005, Calendar.FEBRUARY, 25, 0, 0, 0);    long day = ( cal1.getTimeInMillis() -             cal2.getTimeInMillis() ) / (24 * 60 * 60 * 1000 );    System.out.print( String.format("%1$tY年 %1$tB %1$te日 %1$ta曜日と",cal1));    System.out.print( String.format("%1$tY年 %1$tB %1$te日 %1$ta曜日の間には",cal2));    System.out.print( String.format("%1$d日の日数があります。",day));  }} | 
[ サンプルプログラムの実行結果 ]
2009年 5月 22日 金曜日と2005年 2月 25日 金曜日の間には1547日の日数があります。
[ サンプルプログラムの解説 ]
ある日付とある日付の間の日数を計算するには、Calendarクラスで設定した日付をミリ秒値に変換します。
ミリ秒値に変換した2つの日付で引き算を行った後、1日のミリ秒値で割ってあげると2つの日付の間の日数が算出されます。