calendar.add(Calendar.MONTH, 1);和calendar.set(Calendar.DAY_OF_MONTH, 0);的作用
时间: 2023-11-19 07:24:05 浏览: 51
`calendar.add(Calendar.MONTH, 1)` 的作用是将 `Calendar` 对象中的月份字段加上 1,即将当前的月份向后推一月。例如,如果当前月份为 5 月,则执行该语句后,月份字段的值将变为 6。
`calendar.set(Calendar.DAY_OF_MONTH, 0)` 的作用是将 `Calendar` 对象中的日期字段设置为该月的最后一天。即将日期字段设置为 0,表示上一个月的最后一天,然后调用 `getTime()` 方法获取 `Date` 对象,再将日期字段设置为 1,最后再将 `Date` 对象转换为 `Calendar` 对象,这时 `Calendar` 对象中的日期字段就是该月的最后一天了。
综合起来,这两行代码的作用是将 `Calendar` 对象中的日期字段设置为下一个月的第一天,然后再减去一天,即得到当前月份的最后一天。这个操作常用于计算某个日期所在月份的天数。
相关问题
Calendar.add和Calendar.set方法
Calendar.add方法用于在Calendar实例中添加或减去指定的时间量。它接受两个参数,第一个参数是时间字段(例如Calendar.YEAR,Calendar.MONTH等),第二个参数是要添加或减去的时间量。下面是一个示例:
```java
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.YEAR, 1); // 在当前日期上加1年
calendar.add(Calendar.MONTH, -3); // 在当前日期上减去3个月
calendar.add(Calendar.DAY_OF_MONTH, 7); // 在当前日期上加7天
```
Calendar.set方法用于设置Calendar实例表示的日期和时间。它接受两个参数,第一个参数是时间字段,第二个参数是要设置的值。下面是一个示例:
```java
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2022); // 设置年份为2022
calendar.set(Calendar.MONTH, Calendar.JANUARY); // 设置月份为一月
calendar.set(Calendar.DAY_OF_MONTH, 15); // 设置日期为15号
```
这样,Calendar实例就表示了2022年1月15日的日期和时间。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date = sdf.parse(datestr); Calendar calendar = new GregorianCalendar() calendar.setTime(date) calendar.add(Calendar.MONTH, 0); calendar.set(Calendar.DAY_OF_MONTH, 1); var firstDay = calendar.getTime(); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); var lastday = calendar.getTime()
这段代码的作用是将一个字符串类型的日期转换为该月份的第一天和最后一天的日期。具体来说,它首先将字符串类型的日期解析为 Date 对象,然后将其设置为 GregorianCalendar 对象的时间,接着将该月份的第一天和最后一天的日期分别设置为 Calendar 对象的时间,并将它们转换为 Date 对象。最后,它将这两个 Date 对象分别赋值给 firstDay 和 lastday 变量。