J'ai essayé d'obtenir le dernier horodatage dans le mois en cours de l'année sur Android si j'ai trouvéObtenez dernier horodatage du mois en cours dans Android
getActualMaximum d'instance « calendrier » utile, mais quand je l'ai essayé de comprendre ce qui est le dernier horodatage Août à 2016 j'ai eu tort nombre de jours 30 au lieu de 31
public static long getLastTimeStampOfCurrentMonth(int month, int year) {
Calendar cal = Calendar.getInstance();
cal.set(year,month, cal.getActualMaximum(Calendar.DAY_OF_MONTH), 23,59,59);
return cal.getTimeInMillis();
}
J'ai trouvé une solution pour ce cas quand je pris le minimum du mois suivant moins un:
public static long getLastTimeStampOfCurrentMonth(int month, int year) {
Calendar cal = Calendar.getInstance();
cal.set(year,month, cal.getActualMinimum(Calendar.DAY_OF_MONTH)-1, 23,59,59);
return cal.getTimeInMillis();
}
Je suis curieux de savoir ce qui a causé le problème ... (mai j'ai trouvé un bug)
Gotcha, précédemment j'ai eu les jours du mois du mois en cours (septembre dans ce cas) je devais mettre le mois pertinent sur l'instance de calander: "cal.set (Calendar.MONTH, month);" avant "cal.getActualMaximum (Calendar.DAY_OF_MONTH);" –
@LiorZamir, mise à jour. année bissextile incluse. – Vyacheslav