【发布时间】:2018-10-13 04:37:38
【问题描述】:
下面的代码有什么问题?它给出了一年中任何日期的错误日期。
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));
}
}
【问题讨论】:
-
2018 年 3 月 5 日提供,星期四回来了,这是正确的。你能提供失败场景的例子吗?
-
我尝试了 2015 年 8 月 5 日(2015 年 8 月 5 日),结果是星期六而不是星期三。
-
@clement 代码中的顺序是年月日。 2018 年 3 月 5 日是星期一,所以当你得到星期四时,它是不正确的。
-
仅供参考,麻烦的旧日期时间类,如
java.util.Date、java.util.Calendar和java.text.SimpleDateFormat现在是 legacy,被 Java 8 及更高版本中内置的 java.time 类所取代.见Tutorial by Oracle。 -
@OleV.V.该死的美国日期格式,我们在澳大利亚使用 dd/mm/yyyy(在法国也是如此;)),2018 年 5 月 3 日确实是星期四 :)
标签: java date dayofweek java.util.calendar