gpt4 book ai didi

java - 如何列出 2009 年和 2010 年周一至周四的所有日历日期?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:03:13 25 4
gpt4 key购买 nike

我需要向后循环并列出 2009 年和 2010 年的所有日历日期,这些日期属于每周的星期一 - 星期四,并将它们记录为映射到星期几的日-月-年字符串映射:

"19-10-2010", "Tuesday"
"4-10-2010", "Monday"

Java 中是否有一个库可以帮助解决这个问题,还是可以只用标准库来完成?

最佳答案

使用日历:

  • YEAR 设置为 2009
  • DAY_OF_YEAR 设置为 1
  • 遍历 2009 年和 2010 年的所有日期,检查周一至周四。

代码:

Calendar cal = Calendar.getInstance();

// Start in 1 Jan 2009
cal.set(YEAR, 2009);
cal.set(DAY_OF_YEAR, 1);

// Iterate while in 2009 or 2010
while (cal.get(YEAR) <= 2010)
{
int dow = cal.get(DAY_OF_WEEK);
if (dow >= Calendar.MONDAY && dow <= Calendar.THURSDAY))
{
// add to your map
}
cal.add(Calendar.DATE, 1);
}

更新:

优化它是微不足道的,这样您就不需要遍历周五、周六、周日:只需在看到周四时添加 4 天,否则添加 1 天:

while (cal.get(YEAR) <= 2010)
{
int dow = cal.get(DAY_OF_WEEK);
if (dow >= Calendar.MONDAY && dow <= Calendar.THURSDAY))
{
// add to your map
}
cal.add(Calendar.DATE, (dow == Calendar.THURSDAY)? 4 : 1);
}

关于java - 如何列出 2009 年和 2010 年周一至周四的所有日历日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3976409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com