天数计算器——5行代码得到日期,2行代码得到天数
方法
利用26位数组
溢出位 | 天数 | 溢出位 | 天数 |
---|---|---|---|
0 | 闰年 | 0 | 平年 |
0 | 31,29,31,30,31,30,31,31,30,31,30 | 0 | 31,28,31,30,31,30,31,31,30,31,30,31 |
溢出位用来处理1月的特殊情况,减少判断的代码行数
代码
主要部分
int []arr = new int[]{0,31,29,31,30,31,30,31,31,30,31,30,31,0,31,28,31,30,31,30,31,31,30,31,30,31};
//得到日期
for(int i = 0;i < 12; i++){
sum += arr[i + leap];
if(days - sum > 0 && days - sum <= arr[i + leap+1]){
System.out.println(years+"年的第 "+days+"天是 "+ (i+1) + "月 " + (days-sum) +"日");
break;
}
}
//得到天数
for(int i = 0; i < mon; i++){
sum += arr[i+leap];
}
完整代码:
https://github.com/947104238/-DaysCalsulate/blob/master/DayCalculate.java
测试