每个月分上中下三旬,java从当前时间所在的旬开始计算,计算出一年的旬,可以根据月份自动判断旬末是30,还是31,亦或是28
时间: 2023-11-23 22:06:50 浏览: 216
可以使用Java.time包中的LocalDate类来计算一年的旬。根据题目需求,每个月分上中下三旬,即一个月分为三部分,每部分10天。可以使用以下代码实现:
```
import java.time.LocalDate;
import java.time.Month;
public class Main {
public static void main(String[] args) {
LocalDate currentDate = LocalDate.now();
int currentYear = currentDate.getYear();
Month currentMonth = currentDate.getMonth();
int currentDayOfMonth = currentDate.getDayOfMonth();
int xun = ((currentDayOfMonth-1)/10) + 1;
// 计算当前月份的天数
int daysInMonth;
if (currentMonth == Month.FEBRUARY) {
if (currentDate.isLeapYear()) {
daysInMonth = 29;
} else {
daysInMonth = 28;
}
} else if (currentMonth == Month.APRIL || currentMonth == Month.JUNE || currentMonth == Month.SEPTEMBER || currentMonth == Month.NOVEMBER) {
daysInMonth = 30;
} else {
daysInMonth = 31;
}
// 输出一年的旬
for (int i = currentMonth.getValue(); i <= 12; i++) {
for (int j = xun; j <= 3; j++) {
System.out.println(currentYear + "-" + String.format("%02d", i) + "-" + String.format("%02d", j*10) + " 至 " + currentYear + "-" + String.format("%02d", i) + "-" + String.format("%02d", (j*10 + 9 < daysInMonth ? j*10+9 : daysInMonth)));
}
xun = 1;
}
}
}
```
这里的daysInMonth变量为当前月份的天数,根据月份来判断是否是闰年以及每个月的天数。然后使用嵌套循环遍历一年的旬,从当前月份和旬开始往后遍历,如果当前旬已经是第三旬,则从下一个月的第一旬开始遍历。最后输出每个旬的起止日期。
阅读全文