参考サイトど忘れしました
/** 日付チェック
* 文字列(YYYYMMDD)が日付として有効かチェックする。
* @param String 入力文字列 YYYYMMDD
* @return boolean 有効 true 無効 false
*/
public static boolean checkDate(String myDate) {
//入力文字列が8桁以外の場合エラー
if (myDate.length() != 8) {
return false;
}
//半角数字?
for (int i = 0; i < myDate.length(); i++) {
char charData = myDate.charAt(i);
if ((charData < '0') || (charData > '9')) {
return false;
}
}
int intYear;
int intMonth;
int intDay;
if (myDate.length() > 3) {
intYear = java.lang.Integer.parseInt(myDate.substring(0, 4));
} else {
intYear = 0;
}
if (myDate.length() > 5) {
intMonth = java.lang.Integer.parseInt(myDate.substring(4, 6));
} else {
intMonth = 0;
}
if (myDate.length() == 8) {
intDay = java.lang.Integer.parseInt(myDate.substring(6, 8));
} else {
intDay = 0;
}
//カレンダーインスタンス
Calendar cal = Calendar.getInstance();
//厳密性をセット
cal.setLenient(false);
cal.set(intYear, intMonth - 1, intDay);
try {
//こういうやり方はよくないが。。。
java.util.Date ud = cal.getTime();
} catch (IllegalArgumentException iae) {
return false;
}
return true;
}
最終更新:2009年06月13日 11:01