62,614
社区成员
发帖
与我相关
我的任务
分享
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
do{
System.out.println("请输入年份:");
int year = sc.nextInt(); //1、限定年月日开头不能输入0,且月份不能大于12,号数不能大于31
System.out.println("请输入月份:"); //2、for用来累计第几天的
int month = sc.nextInt(); //3、因为2月有28 和29天之分,能被4整数的叫闰
//1\3\5\7\8\10\12有31天;4\6\9\11有30天
System.out.println("请输入号数:");
int day = sc.nextInt();
int days = 0;
String leap = "";
boolean isLeap ;
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
isLeap = true;
leap = "闰年";
}else{
isLeap = false;
leap = "平年";
}
if(year>0 && month>0 && day>0 && month<13 && day<32){
switch(month){
case 12:days += 30;
case 11:days += 31;
case 10:days += 30;
case 9:days += 31;
case 8:days += 31;
case 7:days += 30;
case 6:days += 31;
case 5:days += 30;
case 4:days += 31;
case 3: if (isLeap) {
days += 29;
}else{
days += 28;
}
case 2:days += 31;
case 1:days += day;
}
if( (year%4==0 && year%100!=0) || (year%400==0) && day >=29 && days>=29){//用于 判断2月份28|29天 ,闰年2月是29天 平年2月是28天.
System.out.println(year+"年"+month+"月"+day+"日,是"+leap+",是当年的第"+days+"天");
}else{
System.out.println(year+"年"+month+"月"+day+"日,是"+leap+",是当年的第"+days+"天");
}
}else{//大if的
System.out.println("输入异常!");
}
} while (sc.next().charAt(0) == 'y'); // do
}