I am stuck on this code . The problem says
起草一个方案,说明从键盘中提取的线索,并测试是否载有有效日期。 显示日期和电文,表明该日期是否有效。 如果无效,也发出信息,解释其无效的原因。
输入日期将具有格式毫米/dd/yyyy。 有效月值为1至12个月(1月为1)。 日值从1美元到一定数值。 9月、4月、6月和11月各有30天。 2月份为28天,但只有29岁这一代位的年份除外。 其余几个月各有31天。 年限为4年,但除400年外,每年不得有100年。
这是我迄今为止所写的。 问题是,无论我提出的日期如何,产出总是一样的。 你们能否帮助我找到问题?
import java.util.Scanner;
public class Ch3ProblemNine
{
public static void main(String [ ] args)
{
System.out.println("Enter the date in mm/dd/yyyy format. ");
String date="";
Scanner keyboard = new Scanner(System.in);
int mm = 00;
int dd = 00;
int yy = 0000;
date = keyboard.nextLine();
boolean isLeapYear;
mm=0;
dd=0;
yy=0;
isLeapYear=false;
if(yy%4==0 && (!(yy%100==0) || yy%400==0))
{
isLeapYear=true;
}
if((mm<12) && (mm>1))
{
System.out.println("You have entered an invalid month. Please try again.");
}
if((dd>31 && dd<1))
{
System.out.println("You have entered an invalid day. Please try again.");
}
if((mm==9 && mm==4 && mm==6 && mm==11) && !(dd==31))
{
System.out.println("For the given month, you have entered an invalid day.");
}
if((mm==2 && !(dd<29)) && isLeapYear==false)
{
System.out.println("You have entered an invalid day for the month of February.");
}
if((mm==2 && !(dd<30)) && isLeapYear==true)
{
System.out.println("You have entered an invalid day for the month of February.");
}
else
{
System.out.println("You have entered a valid date in the correct format.");
}
if (isLeapYear){
if((mm==2 && !(dd==29)) && isLeapYear==true)
System.out.println(date + " is a valid date.");
}
else
System.out.println( date + "is not valid month must have 29 days or less.");
if ((mm ==2) && (dd<=28))
System.out.println( date + " is a valid date.");
}
}