【问题标题】:java calendar add is not workingjava日历添加不起作用
【发布时间】:2015-05-20 12:02:49
【问题描述】:

我使用 add 方法将 3 天添加到日历中。

但我发现它无法正常工作。

Calendar.add(Calendar.DATE, 7);

请告诉我出了什么问题。

while(dateIdx < nowDate)
{
    int tmpYear = startCal.get(Calendar.YEAR);
    int tmpMonth = startCal.get(Calendar.MONTH)+1;
    int tmpDay = startCal.get(Calendar.DAY_OF_WEEK);

    System.out.println(+tmpYear+tmpMonth+tmpDay+ "- "+tmpYear+tmpMonth+(tmpDay+6));
    startCal.add(Calendar.DATE, 7); //used add method here
    tmpYear = startCal.get(Calendar.YEAR);
    tmpMonth = startCal.get(Calendar.MONTH)+1;
    tmpDay = startCal.get(Calendar.DAY_OF_WEEK);
    dateIdx = tmpYear*10000 + tmpMonth*100 +tmpDay; //it is not incorrect result
}

【问题讨论】:

  • 你增加了 7 天。
  • 输入是什么?你得到了什么输出?你期望它是什么?
  • FRIDAY + 7 仍然等于 FRIDAY
  • nowDate的类型是什么?
  • 我唯一想要的就是在日历对象的日期数据中添加 7 天。问题是 add 方法不起作用......根本没有。请忽略其他内容。

标签: java date calendar add


【解决方案1】:

这个过程运行得很好......

Calendar startCal = Calendar.getInstance();
int tmpYear = startCal.get(Calendar.YEAR);
int tmpMonth = startCal.get(Calendar.MONTH) + 1;
int tmpDay = startCal.get(Calendar.DAY_OF_WEEK);

System.out.println(tmpYear + "/" + tmpMonth + "/" + tmpDay);
System.out.println(startCal.getTime());
startCal.add(Calendar.DATE, 7); //used add method here
tmpYear = startCal.get(Calendar.YEAR);
tmpMonth = startCal.get(Calendar.MONTH) + 1;
tmpDay = startCal.get(Calendar.DAY_OF_WEEK);

System.out.println(tmpYear + "/" + tmpMonth + "/" + tmpDay);
System.out.println(startCal.getTime());

哪些输出...

2015/5/4
Wed May 20 22:07:14 EST 2015
2015/5/4
Wed May 27 22:07:14 EST 2015

DAY_OF_WEEK 表示它是“天”(周一到周日),因此在任何日期加上 7 都会得到相同的 `DAY_OF_WEEK。

也许您打算改用DATE

tmpDay = startCal.get(Calendar.DATE);

作为旁注,我鼓励您使用 Java 8 的新 Time API 或 Joda-Time over Calendar,您通常会发现它更简单,但那就是我

【讨论】:

  • 非常感谢。这对我很有帮助。上帝保佑你
  • 是的。正如他所说,“Calendar.DAY_OF_WEEK”是错误的。这是问题......谢谢你的帮助。祝你有美好的一天Blip
猜你喜欢
  • 2016-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-08
  • 1970-01-01
相关资源
最近更新 更多