このコード スニペットがあり、メソッドのより良いバージョンが必要です。
このより良いバージョンには ff が必要です:
- 正しい番号 毎月の日数
- どの月にも 31 日を許可するべきではありません
- その年がうるう年の場合は true を返します
コード:
private boolean dateCorrect(int monthNum, int dayNum, int yearNum)
{
if ( (monthNum >=1) && (monthNum <=12) &&
(dayNum >= 1) && (dayNum <=31) &&
(yearNum >=1000) && (yearNum <= 9999)
return false;
switch (monthNum)
{
case 1:
if (leapYear(yearInt))
return (dayNum >= 1) && (dayNum <=29);
else
return (dayNum >=1) && (dayNum <=28);
case 2:
return (dayNum >=1) && (dayNum <=31);
case 3:
return (dayNum >=1) && (dayNum <=30);
case 4:
return (dayNum >=1) && (dayNum <=31);
case 5:
return (dayNum >=1) && (dayNum <=30);
case 6:
return (dayNum >=1) && (dayNum <=31);
case 7:
return (dayNum >=1) && (dayNum <=30);
case 8:
return (dayNum >=1) && (dayNum <=31);
case 9:
return (dayNum >=1) && (dayNum <=30);
case 10:
return (dayNum >=1) && (dayNum <=31);
case 11:
return (dayNum >=1) && (dayNum <=30);
case 12:
return (dayNum >=1) && (dayNum <=31);
}
}
}
private boolean leapYear( int yearNum)
{
return (( yearNum % 4 == 0) && ( yearNum % 100 != 0))
|| ( yearNum % 400 == 0);
}