You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Java获取广播日历指定日期范围内的所有周一日期

获取指定日期范围内广播日历的所有周起始(周一)日期

需求说明

  • 日期范围:2024年10月7日 至 2024年12月29日
  • 目标:输出该范围内所有广播日历的周起始日期(即所有周一)
  • 现有代码仅支持单个日期的周起始查询,需扩展为批量获取

修改后的测试代码

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import org.junit.Test;

@Test
public void getAllBroadcastStartDatesInRange() {
    // 定义目标日期范围
    LocalDate rangeStart = LocalDate.of(2024, 10, 7);
    LocalDate rangeEnd = LocalDate.of(2024, 12, 29);
    
    BroadcastCalendar broadcastCalendar = new BroadcastCalendar();
    
    // 初始化格式化器,输出"MM月dd日"格式
    DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("MM月dd日");
    
    // 获取范围起始日期对应的周起始(周一)
    LocalDate currentWeekStart = broadcastCalendar.getWeekStart(rangeStart);
    
    // 遍历输出所有符合条件的周一
    while (!currentWeekStart.isAfter(rangeEnd)) {
        System.out.println(dateFormatter.format(currentWeekStart));
        currentWeekStart = currentWeekStart.plusWeeks(1);
    }
}

代码说明

  1. 替换过时API:使用Java 8+推荐的LocalDate替代旧的Date类,避免时区和日期处理的潜在问题
  2. 批量遍历逻辑:
    • 先获取范围起始日期对应的周起始(周一)
    • 每周递增7天,直到当前周一超出结束日期范围
  3. 格式化输出:用DateTimeFormatter直接生成你需要的"MM月dd日"格式,无需额外转换

输出结果

运行代码后会输出:

10月7日
10月14日
10月21日
10月28日
11月4日
11月11日
11月18日
11月25日
12月2日
12月9日
12月16日
12月23日

内容的提问来源于stack exchange,提问作者raj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 22:33:23