我正在根据给定月份中的天数进行一些计算,
确定当前年份月份
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}}
答案 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();