我想检索上个月的日数.我可以得到当月的日数
Calendar calendar = Calendar.getInstance();
calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), 1);
int currentMonthDaysCount = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println(currentMonthDaysCount);
Run Code Online (Sandbox Code Playgroud)
所以,我试着将上个月的日数计算为
Calendar calendar = Calendar.getInstance();
calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH - 1), 1);
int previousMonthDaysCount = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println(previousMonthDaysCount);
Run Code Online (Sandbox Code Playgroud)
我到30了我的控制台.我错了什么?这个月是八月和七月应该产生的上个月31.
您是从Calendar常量中减去而不是从该常量中减去的值.
更改:
calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH - 1), 1);
Run Code Online (Sandbox Code Playgroud)
附:
calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH) - 1, 1);
Run Code Online (Sandbox Code Playgroud)
更简单的解决方案
calendar.roll(Calendar.MONTH, false);
Run Code Online (Sandbox Code Playgroud)
......将"滚动"一个月"向下".
| 归档时间: |
|
| 查看次数: |
58 次 |
| 最近记录: |