Java 8 et plus
@Warren M. Nocos. Si vous essayez d'utiliser la nouvelle fonction de Java 8 API date et heure vous pouvez utiliser java.time.YearMonth
classe. Voir Tutoriel Oracle .
// Get the number of days in that month
YearMonth yearMonthObject = YearMonth.of(1999, 2);
int daysInMonth = yearMonthObject.lengthOfMonth(); //28
Test : essayez un mois dans une année bissextile :
yearMonthObject = YearMonth.of(2000, 2);
daysInMonth = yearMonthObject.lengthOfMonth(); //29
Java 7 et antérieur
Créer un calendrier, définir l'année et le mois et utiliser 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
Test : essayez un mois dans une année bissextile :
mycal = new GregorianCalendar(2000, Calendar.FEBRUARY, 1);
daysInMonth= mycal.getActualMaximum(Calendar.DAY_OF_MONTH); // 29
7 votes
Quelle est exactement votre question ?
1 votes
Pour votre information, les anciennes classes de date et d'heure terriblement gênantes telles que
java.util.Date
,java.util.Calendar
yjava.text.SimpleDateFormat
sont maintenant héritage supprimé par le java.time intégrées à Java 8 et aux versions ultérieures. Voir Tutoriel par Oracle .