假设当前日期是5月28日。如果我按顺序调用以下命令,输出将变为
cal.add(Calendar.DATE, 1); // Day = 29
cal.add(Calendar.DATE, 1); // Day = 30
cal.add(Calendar.DATE, 1); // Day = 31
cal.add(Calendar.DATE, 1); // Day = 31
cal.add(Calendar.DATE, -1); // Day = 29为什么不跳到下个月呢?为什么它停留在31位(但当你减1时,它会跳到29位)?
发布于 2012-08-09 19:16:58
当您将1添加到Calendar.DATE字段时,当到达月底时,它也应该递增月份(在五月的情况下是31),因此您编写的内容没有意义。对其进行调试,并确保day值确实是您认为的值
发布于 2013-12-30 21:15:53
我的朋友,你可以通过两种简单的方法轻松地做到这一点。第一个是:
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, 1);第二个是:
Calendar cal = Calendar.getInstance();
cal.add(Calendar.HOUR_OF_DAY, 24);我想你会想找到这个东西的。谢谢。
发布于 2016-05-18 13:33:45
这也应该能起到作用。
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_YEAR, 1);您可以使用以下命令测试它的工作情况:
for (int i = 0; i < 365; i++) {
cal.add(Calendar.DAY_OF_YEAR, 1);
System.out.println(cal.getTime().toString());
}https://stackoverflow.com/questions/11882102
复制相似问题