日数計算などのサンプル

日付の計算のサンプルです。N日後とかN日前、日付と日付の間の日数等々

Home > サンプル集 > Javaサンプル集 > 日にちの計算


日にちの計算

このページには、以下のサンプルを掲載しています。 下の項目をクリックをすると各サンプルにジャンプします。 ※2週間以内の新着記事はNewアイコン、更新記事はUpアイコンが表示されます。
  1. ある日付のN日後 ( DateSample01.java )  
  2. ある日付のN日前 ( DateSample02.java )  
  3. ある日付からある日付の間の日数 ( DateSample03.java )  

1. ある日付のN日後

[ サンプルプログラムのソースコード - DateSample01.java - ]
  1. package sample.caldate;
  2. import java.util.Calendar;
  3. public class DateSample01 {
  4.   public static void main(String[] args) {
  5.     
  6.     Calendar cal = Calendar.getInstance();
  7.     cal.set(2009, Calendar.APRIL, 25, 6, 44, 0);
  8.     int day = 100;
  9.     System.out.print( String.format( 
  10.       "%1$tY年 %1$tB %1$te日 %1$ta曜日の%2$d日後は、",cal,day));
  11.     cal.add(Calendar.DAY_OF_YEAR, day);
  12.     System.out.println( String.format(
  13.         "%1$tY年 %1$tB %1$te日 %1$ta曜日です。", cal));
  14.   }
  15. }

[ サンプルプログラムの実行結果 ]
2009年 4月 25日 土曜日の100日後は、2009年 8月 3日 月曜日です。
[ サンプルプログラムの解説 ]
日にちの加算を行うには、Calendarクラスのaddメソッドを使います。 第一引数で、加算を行うフィールドを指定します。上記サンプルでは、 1年の内の何日目かを現すフィールド「DAY_OF_YEAR」を指定しています。 第二引数には、加算を行う日数を指定しています。



2. ある日付のN日前

[ サンプルプログラムのソースコード - DateSample02.java - ]
  1. package sample.caldate;
  2. import java.util.Calendar;
  3. public class DateSample02 {
  4.   public static void main(String[] args) {
  5.     
  6.     Calendar cal = Calendar.getInstance();
  7.     cal.set(2009, Calendar.APRIL, 25, 6, 44, 0);
  8.     int day = 100;
  9.     System.out.print( String.format( 
  10.       "%1$tY年 %1$tB %1$te日 %1$ta曜日の%2$d日前は、",cal,day));
  11.     cal.add(Calendar.DAY_OF_YEAR, -day);
  12.     System.out.println( String.format(
  13.       "%1$tY年 %1$tB %1$te日 %1$ta曜日です。", cal));
  14.   }
  15. }

[ サンプルプログラムの実行結果 ]
2009年 4月 25日 土曜日の100日前は、2009年 1月 15日 木曜日です。
[ サンプルプログラムの解説 ]
サンプル「ある日付のN日後」とほとんど同じですが、addメソッドの第二引数でマイナスの数値 を与えるとN日前の計算ができます。



3. ある日付からある日付の間の日数

[ サンプルプログラムのソースコード - DateSample03.java - ]
  1. package sample.caldate;
  2. import java.util.Calendar;
  3. public class DateSample03 {
  4.   public static void main(String[] args) {
  5.     
  6.     Calendar cal1 = Calendar.getInstance();
  7.     Calendar cal2 = Calendar.getInstance();
  8.     cal1.set(2009, Calendar.MAY, 22, 0, 0, 0);
  9.     cal2.set(2005, Calendar.FEBRUARY, 25, 0, 0, 0);
  10.     long day = ( cal1.getTimeInMillis() - 
  11.             cal2.getTimeInMillis() ) / (24 * 60 * 60 * 1000 );
  12.     System.out.print( String.format("%1$tY年 %1$tB %1$te日 %1$ta曜日と",cal1));
  13.     System.out.print( String.format("%1$tY年 %1$tB %1$te日 %1$ta曜日の間には",cal2));
  14.     System.out.print( String.format("%1$d日の日数があります。",day));
  15.   }
  16. }

[ サンプルプログラムの実行結果 ]
2009年 5月 22日 金曜日と2005年 2月 25日 金曜日の間には1547日の日数があります。
[ サンプルプログラムの解説 ]
ある日付とある日付の間の日数を計算するには、Calendarクラスで設定した日付をミリ秒値に変換します。 ミリ秒値に変換した2つの日付で引き算を行った後、1日のミリ秒値で割ってあげると2つの日付の間の日数が算出されます。




最終更新日:2019/02/13

2015-03-01からの訪問者数
  869 人