如何知道特定年份的特定月份有多少天?
String date = "2010-01-19"; String[] ymd = date.split("-"); int year = Integer.parseInt(ymd[0]); int month = Integer.parseInt(ymd[1]); int day = Integer.parseInt(ymd[2]); Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.YEAR,year); calendar.set(Calendar.MONTH,month); int daysQty = calendar.getDaysNumber(); // Something like this
@Warren M. Nocos。如果您尝试使用 Java 8 的新Date and Time API,您可以使用java.time.YearMonthclass. 请参阅Oracle 教程。
java.time.YearMonth
// Get the number of days in that month YearMonth yearMonthObject = YearMonth.of(1999, 2); int daysInMonth = yearMonthObject.lengthOfMonth(); //28
测试:在闰年尝试一个月:
yearMonthObject = YearMonth.of(2000, 2); daysInMonth = yearMonthObject.lengthOfMonth(); //29
创建日历,设置年月并使用getActualMaximum
getActualMaximum
int iYear = 1999; int iMonth = Calendar.FEBRUARY; // 1 (months begin with 0) int iDay = 1; // Create a calendar object and set year and month Calendar mycal = new GregorianCalendar(iYear, iMonth, iDay); // Get the number of days in that month int daysInMonth = mycal.getActualMaximum(Calendar.DAY_OF_MONTH); // 28
测试 :在闰年尝试一个月:
mycal = new GregorianCalendar(2000, Calendar.FEBRUARY, 1); daysInMonth= mycal.getActualMaximum(Calendar.DAY_OF_MONTH); // 29