【发布时间】:2011-05-19 00:58:52
【问题描述】:
我试图在两个日期之间的所有周内迭代我的 Java 程序(结束日期是今天)。首先,我得到开始日期:
Calendar start = Calendar.getInstance();
start = data.getFirstDate(users, threads);
到目前为止,一切都很好。开始日期是正确的,我可以使用它。现在我迭代:
Calendar current = start;
while(current.before(Calendar.getInstance()) {
// Do something
current.add(Calendar.DATE, 7);
}
嗯,这样的作品。我从 2002/8/23 开始,然后是 2002/8/30,然后是 2002/9/7...直到 2002/11/30。之后的日期是 2003/0/6,既不正确,也不是有效日期!
我做错了什么?我尝试了current.add(Calendar.DATE, 7)、current.add(Calendar.WEEK_OF_YEAR, 1)、current.add(Calendar.DAY_OF_YEAR, 7) 和其他两种方式。使用current.roll(Calendar.DATE, 7) 不起作用,因为我留在同一个月。使用GregorianCalendar 也没有效果。
任何建议将不胜感激!
谢谢 朱利安
【问题讨论】:
-
仅供参考,麻烦的旧日期时间类,如
java.util.Date、java.util.Calendar和java.text.SimpleDateFormat现在是 legacy,被 Java 8 和 Java 中内置的 java.time 类所取代9. 见Tutorial by Oracle。
标签: java date calendar dayofweek