输入日期判断是某一年的第几天

前言

在进行Java基础学习的时候,发现一个之前用C语言做过的程序设计问题,代码链接c语言实现对问题产生了新的更加简洁的想法。
题目描述:输入年月日,输出这几天是输入年份的第几天

代码:
算法设计:
巧妙使用switch语句,倒序月份,使得依次执行指定月份之前的月份天数累加。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package Test;
import java.util.Scanner;
public class SwitchSen {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入year:");
int year = scan.nextInt();

System.out.println("请输入month:");
int month = scan.nextInt();

System.out.println("请输入day:");
int day = scan.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("输入日期是"+ year + "年的第" + sum + "天");
}
}
//2020年5月18是2020年的第139天