java获取某年有多少个周,对应周的起止时间
时间: 2023-10-20 09:12:27 浏览: 146
Java中可以使用Calendar类来获取某年有多少个周以及对应周的起止时间。具体实现如下:
```java
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class WeekOfYear {
public static void main(String[] args) {
int year = 2021; // 指定年份
Calendar calendar = Calendar.getInstance();
calendar.setFirstDayOfWeek(Calendar.MONDAY); // 设置每周的起始日为星期一
calendar.set(Calendar.YEAR, year);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
int weeks = calendar.getActualMaximum(Calendar.WEEK_OF_YEAR); // 获取该年份的总周数
System.out.println(year + "年共有" + weeks + "周");
for (int i = 1; i <= weeks; i++) {
calendar.set(Calendar.WEEK_OF_YEAR, i);
calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
String start = sdf.format(calendar.getTime()); // 获取当前周的起始日期
calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
String end = sdf.format(calendar.getTime()); // 获取当前周的结束日期
System.out.println("第" + i + "周:" + start + " ~ " + end);
}
}
}
```
运行结果如下:
```
2021年共有52周
第1周:2021-01-04 ~ 2021-01-10
第2周:2021-01-11 ~ 2021-01-17
...
第51周:2021-12-20 ~ 2021-12-26
第52周:2021-12-27 ~ 2021-12-31
```
在上面的代码中,我们首先指定了一个年份,然后获取该年份的总周数。接着,我们使用循环遍历每一周,并计算每一周的起始日期和结束日期。最后,输出每一周的起止时间。需要注意的是,我们在这里将每周的起始日设置为星期一。
阅读全文