Imprimer les noms des 6 derniers mois à partir du mois en cours en Java
J'ai besoin d'imprimer le nom des 6 derniers mois du mois en cours.
Par exemple, lorsqu'il est exécuté en avril 2016, j'ai besoin d'imprimer: novembre(2015), dec(2015), jan(2016), février(2016), mars(2016), avril(2016)
Format formatter = new SimpleDateFormat("MMMM YYYY");
Calendar c = Calendar.getInstance();
String[] thisAndLastFiveMonths = new String[6];
for (int i = 0; i < thisAndLastFiveMonths.length; i++) {
thisAndLastFiveMonths[i] = formatter.format(c.getTime());
c.add(Calendar.MONTH, -1);
System.out.println(c);
1
1 answers
En utilisant Java Time API , vous pouvez construire un YearMonth
objet représentant l'année-mois en cours et l'appel minusMonths
soustraire un nombre de mois.
Ensuite, vous pouvez obtenir la représentation textuelle des noms de mois avec Month.getDisplayName(style, locale)
. Le TextStyle
est utilisé pour le style de la sortie; vous pouvez utiliser SHORT
pour votre cas:
Texte Court, généralement une abréviation. Par exemple, le lundi du jour de la semaine peut produire "Mon".
public static void main(String[] args) {
for (int i = 5; i >= 0; i--) {
YearMonth date = YearMonth.now().minusMonths(i);
String monthName = date.getMonth().getDisplayName(TextStyle.SHORT, Locale.ENGLISH);
System.out.println(monthName + "(" + date.getYear() + ")");
}
}
Imprime, lorsqu'il est exécuté en avril 2016:
Nov(2015)
Dec(2015)
Jan(2016)
Feb(2016)
Mar(2016)
Apr(2016)
6
Author: Tunaki, 2016-04-18 12:01:06