题目:键盘输入年月日,判断是当年的第几天
思路分析:
一、闰年的判断:
- 可以整除4,但是不可以整除100
- 或者可以整除400
二、代码实现分析
- switch语句里面填写的是month,因为要输出当年的第几天,所以我们用月来做判断
- case后面的语句怎么写
- 12月:11月+10月+9月+……1月+day
- 11月:10月+9月+……1月+day
- 10月:9月+……1月+day
- ……
- 2月:1月+day
- 1月:day
根据上面的式子,我们可以推出:case 语句里面放下一个月的天数,1月里面放day,因为需要连续加,所以不用break阻断
代码实现:
import java.util.Scanner;
public class SwitchTest {
public static void main(String[] args) {
//输入年月日,判断是今年的第几天
Scanner sc = new Scanner(System.in);
System.out.println("请输入年月日");
int year = sc.nextInt();
int month = sc.nextInt();
int day = sc.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:
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
sum += 29;
} else {
sum += 28;
}
case 2:
sum += 31;
case 1:
sum += day;
}
System.out.println(sum);
}
}