天数计算器

时间:2024-01-29 08:21:32

天数计算器——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

测试