我的程序获取当前日期,然后在循环中为该日期添加一周并打印出新日期。就像是:
Calendar cal = Calendar.getInstance();
for (int i=0; i < 52; i++) {
cal.add(Calendar.DATE, 7);
// print date out
}
add 方法按我预期的方式工作,直到它到达 12 月 30 日,此时年份从 2012 年跳到 2013 年。
因此,使用今天 2012 年 4 月 16 日的日期,我测试了一些不同的输入:
this - cal.add(Calendar.DATE, 38*7);
yields- "date:1/7/2013"
this - cal.add(Calendar.DATE, 37*7);
yields- "date:12/31/2013"
this - cal.add(Calendar.DATE, 37*7-1);
yields- "date:12/30/2013"
this - cal.add(Calendar.DATE, 37*7-2);
yields- "date:12/29/2012"
所以我注意到年份在 12 月 30 日和 12 月 31 日之前是正确的,然后在回到 1 月时再次更正。这样做有什么原因吗?它与 2012 年是闰年有什么关系还是我误解了 add 方法