从键盘分别输入年、月、日,判断这一天是当年的第几天
提示:
- 如果是2月份往后的月份,需要考虑当年是否是闰年
- 使用switch条件判断效率高
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请依次输入年月日");
int year = scanner.nextInt();
int month = scanner.nextInt();
int day = scanner.nextInt();
int sum = 0;//定义天数
switch (month) {
case 12:
sum += 30;
case 11:
sum += 31;
case 10:
sum += 30;
case 9:
sum += 31;
case 8:
sum += 31;
case 7:
sum += 30;
case 6:
sum += 31;
case 5:
sum += 30;
case 4:
sum += 31;
case 3:
//判断是否是闰年,闰年2月份要加29天
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
sum += 29;
} else {
sum += 28;
}
case 2:
sum += 31;
case 1:
sum += day;
break;//比如输入1月份的第五天,就在1的自身加day,输入2月份的某一天,是1月份一整月加上2月份的day
}
System.out.println("是当前年的第" + sum + "天");
}
总结:
利用switch语句中case穿透的现象,当控制台输入天数后,由当月的天数加上前面每一个月的总天数,即是当年的天数。
除了1月份之外,每个月的sum加的都是前一个月的总天数。
检查结果是否正确: