确定给定月份的天数

时间:2018-08-01 11:56:37

标签: java java.util.calendar

我正在根据给定月份中的天数进行一些计算,

确定当前年份月份

Date date = new Date();
Year = YearFormat.format(date);
Month = MonthFormat.format(date);

确定当月的天数

int year = Integer.valueOf(Year);
int month = Integer.valueOf(Month);
Calendar calendarD = new GregorianCalendar(year, month, 1);
int noOfDaysOfMonth = calendarD.getActualMaximum(Calendar.DAY_OF_MONTH);

问题

noOfDaysOfMonth似乎没有给我正确的天数。

例如year = 2018 , month = 8给了我30的{​​{1}}

3 个答案:

答案 0 :(得分:3)

LocalDate::lengthOfMonth

如果您使用Java 8,则可以访问java.time API。

具体地说,是LocalDate::lengthOfMonth方法。

int length = LocalDate.now().lengthOfMonth();

答案 1 :(得分:3)

月份从0 = 1月开始; month = 9月8日,而9月只有30天。

为避免这种情况,请使用Calendar.AUGUST代替8。

答案 2 :(得分:3)

LengthOfMonth方法适用于此。此外,我认为Calendar API不应再使用。已经老了。

LocalDate date = LocalDate.of(2019, 6, 20);
int days = date.lengthOfMonth();

5 Reasons Why Java's old Date and Calendar API was Bad