输入某年某月某日,是闰年还是平年,判断这一天是这一年的第几天?
public static void main(String[] args) {
//定义变量
//年
int year;
//月
int month;
//固定天数
int day=0;
//输入的天数
int days=0;
//计算天数
int d = 0;
//标识
int e = 0;
Scanner scanner = new Scanner(System.in);
do {
System.out.println("请输入年份:");
year = scanner.nextInt();
System.out.println("请输入月份:");
month = scanner.nextInt();
System.out.println("请输入日:");
days = scanner.nextInt();
//判断 月 日 输入的值是否符合要求
if (month<0 || month>12 || days<0 || month>31) {
System.out.println("输入有误");
//标识
e=1;
}
//如果输入错误则继续循环
} while (e==1);
//循环
for (int i = 0; i < month; i++) {
//根据外循环来进行累加
switch (i) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:{
day=31;
break;
}
case 4:
case 6:
case 9:
case 11:{
day=30;
break;
}
// 闰年: 非整百年数除以4,无余为闰,有余为平;②整百年数除以400,无余为闰有余平
// 二月: 平年28天、闰年29天
case 2:{
//非整百年(year%100!=0) %4 整百年(year%100==0) %400 无余为闰
if ((year%100!=0 && year%4==0)||(year%100==0 && year%400==0)) {
//润
day=29;
}else {
//平
day=28;
}
}
default:
break;
}
//进行累加
d+=day;
}
//输出判断是否为闰年
if ((year%100!=0 && year%4==0)||(year%100==0 && year%400==0)) {
System.out.println("这一年是闰年");
}else{
System.out.println("这一年是平年");
}
// 加上 输入的天数
System.out.println("这是"+year+"年 的第"+(d+days)+"天");
}
效果图如下: