计算一个日期是当年的第几天
这是去年做的一个Java题目,老师当时说这段代码里的switch用的很好。
现在工作一年了,明显感觉当时还很稚嫩,那个时候考虑问题很简单,
现在遇到问题会想更多的方面,说到这里,真的要谢谢带我的经理,
这段时间真的学到很多东西,每天都是在解决问题,每天都能学到新东西,
短短几个月时间进步了好多。
1 import java.util.Scanner;
2
3 /**
4 * 计算一个日期是当年的第几天
5 */
6 public class CountDays {
7
8
9 public static void main(String[] args) {
10 Scanner in = new Scanner(System.in);
11 int year,month,day;
12 int dayNumber =0;
13
14 //input year month day
15 System.out.println("input year month(1-12) day(1-31): ");
16 System.out.print(" ");
17 year = in.nextInt();
18 month = in.nextInt();
19 day = in.nextInt();
20
21 //判断闰年
22 boolean flag =false;
23 if ((year%4==0 && year%100 !=0) || year%400==0)
24 {
25 flag = true;
26 }
27
28 //month
29 switch (month)
30 {
31 case 12:dayNumber +=30;
32 case 11:dayNumber +=31;
33 case 10:dayNumber +=30;
34 case 9 :dayNumber +=31;
35 case 8 :dayNumber +=31;
36 case 7 :dayNumber +=30;
37 case 6 :dayNumber +=31;
38 case 5 :dayNumber +=30;
39 case 4 :dayNumber +=31;
40 case 3 :if (flag)//闰年
41 {
42 dayNumber +=29;
43 }else
44 dayNumber +=28;
45 case 2 :dayNumber +=31;
46 case 1 :dayNumber +=day;break;
47 default:System.out.println("ERROR!");
48 }
49 System.out.println("dayNumber :"+dayNumber);
50 }
51
52 }
这段代码只能解决输入正确的值,没有校验数据是否符合常识;
还是控制台输入,这在实际项目很少遇到,大多是解析出一个日期值;
而且也没有考虑【1752年9月】这个特殊情况,这点还是跟经理学到的。
最后,请无视我蹩脚的英文。
【Java】使用switch 计算一个日期是当年的第几天,布布扣,bubuko.com
时间: 2024-10-21 01:07:59