Javaサンプルコード辞典

Calendar - 日付を計算する

コマンドラインから入力された日付に同じくコマンドラインから入力された日数を加算するサンプルコードです。日付の計算には、「java.util.Calendar」クラスを使用します。

「Calendar」クラスは、任意の一時点の日付、時間の取得や日付計算を行うためのクラスです。「Calendar」クラスは抽象クラスで、インスタンスの取得は静的メソッド「getInstance()」で行います。引数なしのgetInstance()は、デフォルトのタイムゾーンとロケールのカレンダを返却します。日付の計算を行うために、コマンドラインに入力された日付を「Calendar」クラスのインスタンスに設定します。設定は「set()」メソッドに「Calendar」クラスに定義されている年、月などを示す定数と設定する値を指定して行います。日付の設定ができたら、「add()」メソッドに日付を表す「Calendar」クラスの定数と、加算する日数を指定して、計算を行います。日数には負の値を指定することもできます。「add()」メソッドの第1引数に指定する定数を年や月などに変えることにより、任意のフィールドの値を計算することができます。
import java.util.Calendar;

//コマンドライン引数1で指定された日付に、第2引数で指定された数字の日数を加算する
//コマンドライン第1引数:[計算する日付文字列1 yyyymmdd] (例:20071011)
//コマンドライン第2引数:[加算する日数]
public class ComputeDate {

      public static void main(String[] args) {
            
            System.out.println("--処理開始--");
            
            //コマンドライン引数が入力されているかチェックを行う
            if(args.length < 2)
            {
                  System.out.println("コマンドライン引数を指定してください");
                  return;
            }
            
            try
            {
                  //コマンドライン引数1を年、月、日に分けてint型に変換する
                  int year = Integer.parseInt(args[0].substring(0,4));
                  int month = Integer.parseInt(args[0].substring(4,6));
                  int date = Integer.parseInt(args[0].substring(6,8));
                  
                  //日付計算用のCalendarオブジェクトを生成する
                  Calendar cal = Calendar.getInstance();

                  //calにコマンドライン引数1で指定された年、月、日を設定する
                  cal.set(Calendar.YEAR,year);
                  cal.set(Calendar.MONTH,month);
                  cal.set(Calendar.DATE,date);
                  
                  //コマンドライン引数2に指定された加算日数をint型に変換する
                  int num = Integer.parseInt(args[1]);
                  
                  //コマンドライン引数1で指定された日付にコマンドライン引数2で指定された日数を加算する
                  //add()の第1引数には加算するフィールドを、第2引数には加算する数値を指定する。
                  //第2引数にはマイナスの値を指定することも可能
                  cal.add(Calendar.DATE, num);
                  
                  //加算後の日付を取得する
                  int year2 = cal.get(Calendar.YEAR);
                  int month2 = cal.get(Calendar.MONTH);
                  int date2 = cal.get(Calendar.DATE);
                  
                  System.out.println(args[0] + "の" + args[1] + "日後は" + year2 + month2 + date2);
                  
            }
            catch(NumberFormatException e)
            {
                  System.out.println(e);
            }      
            
            System.out.println("--処理終了--");
            
      }

}

(2007年11月3日)  

 ちょっと一休み. Javaキーワード並び替えゲーム

画面に表示される文字列を並び替えるとJavaに関連するキーワードになります。ヒントをたよりに並び替えを行ってエンターを押してください。 ユーザ登録をしてログインするとランキングに参加できます。
Flex Tips

DWRでリッチなWebページを作る!

Java Tips  java.io 編

Java Tips  java.lang 編