嘿,我有這個while循環,它檢查用戶輸入的日期的有效輸入。我需要在這個while循環中添加一個檢查,如果它不是閏年的一天不能超過28,並且如果它是閏年,那麼不能超過29,如果month是二月,意味着month = 2。在while循環中爲閏年添加日期檢查
我該怎麼辦呢?我知道,要檢查它是否是閏年,我使用以下語句:if ((year%4 == 0 && year%100 !=0) || (year%400 == 0))
。
這裏是我的循環:
while ((day>31 || day<=0) || (month>12 || month<=0) || (year<=0))
{
System.out.println("The original date/month/year is invaild");
System.out.println("Please enter 3 integers to represent a valid date:");
day = scan.nextInt();
month = scan.nextInt();
year = scan.nextInt();
}
順便說一句,我不能使用任何方法或類,這是一個家庭作業。
當你說你「不能使用任何方法或類」 - 大概你可以寫你自己的*方法,不是嗎?這就是我要做的 - 不要試圖把所有東西都放在一個巨大的條件下,而是寫一個'isValidDate(int year,int month,int day)'方法。 –
使用日曆可以獲得當月的實際最大值。 https://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html –
@mrmcwolf我認爲這裏的一個明確部分是:他應該寫他自己的日期驗證。這是作業。你基本上是在告訴他作弊的一部分。 – GhostCat