首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Android中添加日期到日历在31号失败

在Android中添加日期到日历在31号失败
EN

Stack Overflow用户
提问于 2012-08-09 19:10:06
回答 6查看 27.1K关注 0票数 19

假设当前日期是5月28日。如果我按顺序调用以下命令,输出将变为

代码语言:javascript
复制
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位)?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-08-09 19:16:58

当您将1添加到Calendar.DATE字段时,当到达月底时,它也应该递增月份(在五月的情况下是31),因此您编写的内容没有意义。对其进行调试,并确保day值确实是您认为的值

票数 19
EN

Stack Overflow用户

发布于 2013-12-30 21:15:53

我的朋友,你可以通过两种简单的方法轻松地做到这一点。第一个是:

代码语言:javascript
复制
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, 1);

第二个是:

代码语言:javascript
复制
Calendar cal = Calendar.getInstance(); 
cal.add(Calendar.HOUR_OF_DAY, 24);

我想你会想找到这个东西的。谢谢。

票数 32
EN

Stack Overflow用户

发布于 2016-05-18 13:33:45

这也应该能起到作用。

代码语言:javascript
复制
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_YEAR, 1);

您可以使用以下命令测试它的工作情况:

代码语言:javascript
复制
for (int i = 0; i < 365; i++) {
    cal.add(Calendar.DAY_OF_YEAR, 1);
    System.out.println(cal.getTime().toString());
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11882102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档