在 Android 中添加日历的一天在 31 日失败

2022-09-02 05:13:57

假设当前日期是 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号(但当你减去一个时,它会跳到29)?


答案 1

我的朋友,你可以用两个简单的方式轻松做到这一点。第一个是:

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, 1);

第二个是:

Calendar cal = Calendar.getInstance(); 
cal.add(Calendar.HOUR_OF_DAY, 24);

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


答案 2

当您向字段添加 1 时,当达到月末时,它也应该增加月份(在 5 月的情况下为 31),以便您编写的没有意义。调试它并确保日期值确实是您认为的Calendar.DATE


推荐