calendar.getDisplayName retourner le mauvais jour

user10400282:

Voici mon programme et il renvoie le mauvais nom de jour où j'entre le mois connexe, la date et l'année.

Ce que je suis absent ici?

mon programme

import java.util.Calendar;
import java.util.Locale;
import java.util.Scanner;

public class TimeTest {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String month = in.next();
        String day = in.next();
        String year = in.next();

        System.out.println(getDay(day, month, year));
    }

    private static String getDay(String day, String month, String year) {
        Calendar calendar = Calendar.getInstance();
        calendar.set(Integer.parseInt(year), Integer.parseInt(month), Integer.parseInt(day));
        return calendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.getDefault());

    }
}      


Production:

09
24
2018
Wednesday       

Il devrait être de retour « lundi », car c'est le jour en cours.

Neeraj Jain:

Vous passez 09 comme mois en supposant qu'il de Septembre , mais en réalité en terme de calendrier classe c'est Août parce que mois commencent à partir 00(Jan), 01(Feb)...et ainsi de suite dans le calendrier de classe.

Par conséquent, pour obtenir la sortie correcte, vous devez passer

08 // September Month not August
24
2018

Voici votre code en marche

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=203702&siteId=1
conseillé
Classement