日付の妥当性をチェック
java.util.Calendarクラスを使用して、日付の妥当性をチェックすることが出来ます。
まずsetメソッドで日付をセットします。
カレンダークラスのsetLenientメソッドにより日付を厳密に指定するようにし、その後getTimeメソッドを実行すると例外がスローされるので、それをキャッチして判断します。

サンプル
import java.util.Calendar;
import java.util.Date;
    public class TEST {
        public static void main(String argv[]){
            int year  = 2007;
            int month = 5;
            int day   = 32;
            
            Calendar c1 = Calendar.getInstance();
            c1.set(year,month - 1,day);
            c1.setLenient(false);
            
            try{
                Date d = c1.getTime();
                System.out.println(d);
            }catch(IllegalArgumentException a){
                System.out.println("Illegal!");
                return;
            }
            System.out.println("OK");
        }
    }
実行結果は以下のようになります。

Illegal!
Calendarクラスのset()メソッド
Calendarクラスのset()メソッドは引数に、年、月、日を渡しますが、月のみ0から指定するようになっています。
c1.set(2007,1,1)

とすると、2007/02/01を指定していることになります。
2007/01/01を指定したい場合は、c1.set(2007,0,1)とします。

Back to top

Information