标签:style blog class code c java
计算一个日期是当年的第几天
这是去年做的一个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
标签:style blog class code c java
原文地址:http://www.cnblogs.com/ihongyan/p/3734463.html