Noob在這裏,所以忍受着我......我正在研究一個Java程序,它接受來自JoptionPane的用戶輸入,並使用一組if-else語句來驗證日期,同時考慮閏年。我在運行時遇到的問題是它驗證了不可能的日期。例如,2014年2月29日,它表示這是一個有效的日期,但事實上並非如此。 關於這個問題的見解將不勝感激。Java有效日期和JOptionPane
import java.util.Arrays;
import javax.swing.JOptionPane;
public class vaildDate {
public static void main(String[] args) {
// TODO Auto-generated method stub
int month, day, year;
String userInput = JOptionPane.showInputDialog("Enter a valid date in mm/dd/yyyy format: ");
String [] date = userInput.split("/");
String mm = date[0];
String dd = date [1];
String yyyy = date [2];
month = Integer.parseInt(mm);
day = Integer.parseInt(dd);
year = Integer.parseInt(yyyy);
System.out.println(mm+dd+yyyy);
boolean validLeapYear;
boolean validDate;
if(month>=1 && month <=12&& day>=1 && day<=31)
{
if(month == 4 || month == 9 || month == 6 || month == 11 && day <= 30)
{
validDate = true;
}
if((month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 11 || month == 12) && (day <= 31))
{
validDate = true;
}
else{
validDate =false;
}
if((year % 400 == 0) || (year % 4 == 0) && (year % 100 != 0))
{
validLeapYear = true;
}
if ((month == 2 && day == 29) && (validLeapYear = false))
{
validDate = false;
}
if((month == 2 && day <= 29) && (validLeapYear = true))
{
validDate = true;
}
if(validDate = true)
{
JOptionPane.showMessageDialog(null, month +"/"+day+"/"+year+" is a valid date");
}
else if(validDate = false) {
JOptionPane.showMessageDialog(null,"Your date is invalid");
}
}
}
}
感謝您的幫助。 – HatTrick
如果它適合您的需求,請接受我的答案。 –