首页 > 解决方案 > Java Calendar.DAY_OF_WEEK 给出错误的日期

问题描述

下面的代码有什么问题?它给出了一年中任何日期的错误日期。

import java.util.Scanner;
import java.util.Calendar;
public class Solution {
    public static String getDay(String d, String m, String y) {

        String[] days = {"SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY"};
        Calendar c = Calendar.getInstance();
        c.set(Integer.parseInt(y), Integer.parseInt(m), Integer.parseInt(d)); 
        return days[c.get(Calendar.DAY_OF_WEEK) - 1]; 
    }
public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String m = in.next();
        String d = in.next();
        String y = in.next();

        System.out.println(getDay(d, m, y));
    }
}

标签: javadatedayofweekjava.util.calendar

解决方案


请参阅Calendar该类的文档:https ://docs.oracle.com/javase/8/docs/api/java/util/Calendar.html#set-int-int-int-

月份的值以 0 为索引,因此如果您提供3月份值,则将其解释为“四月”。


推荐阅读