1.键盘录入年月日,并判断是否准确,年大于0,月大于0 小于=12 ,日大于0 小于等于31
2.判断是不是瑞年,如果是瑞年判断2月是不是小于等于29,还有其他小月是否小于等于30 ;如果不是瑞年判断2月是不是小于等于28.否则提示输入错误
3.判断瑞年和小月的日期,累加求和即可
package com.test;
import java.util.Scanner;
public class Days {
public static void main(String[] args) {
for (;true;) {
boolean b =false;
int sum=0;int days=0;
Scanner sc = new Scanner(System.in);
System.out.println("請輸入年份");
int year=sc.nextInt();
if (year<=0) {
System.out.println("您输入的年份有误");
break;
}
System.out.println("请输入月份");
int month=sc.nextInt();
if (month>12||month<0) {
System.out.println("您输入的月份有误");
break;
}
System.out.println("请输入日期");
int day = sc.nextInt();
if (day>31||day<0) {
System.out.println("您输入的日期有误");
break;
}
//判断是不是瑞年
if ((year%4==0&&year%100!=0)||year%400==0) {
b=true;
}
if ((b&&month==2&&day>29)||((month==4||month==6||month==9||month==11)&&day>30)) {
System.out.println("日期错误");
break;
}else if (month==2&&day>28) {
System.out.println("日期错误");
break;
}
//判断闰年和小月的日期
for (int i = 1; i < month; i++) {//计算天数
switch (i) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31;
break;
case 4:
case 6:
case 9:
case 11:
days=30;
break;
case 2:
if (b) {
days=29;
}else {
days=28;
}
break;
default:
break;
}
sum+=days;
}
if (b) {
System.out.println("这天是地"+(sum+day)+"天");
}else {
System.out.println("这天是地"+(sum+day)+"天");
}
}
}
}