我正在尝试在 HackerRank 上完成名为 Java Date and Time 的任务。
任务
给你一个日期。您只需编写方法 getDay,它返回该日期的日期。例如,如果给定日期 2017 年 8 月 14 日,该方法应返回该日期的星期一。
我尽力完成任务,但我得到了 null
结果或 NullPointerException
错误。我想知道我哪里做错了。下面是我的代码:
提前致谢!
我的代码:
import java.util.*;
public class Solution {
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));
}
public static String getDay(String day, String month, String year) {
Calendar cal = Calendar.getInstance();
cal.set(Integer.valueOf(year), (Integer.valueOf(month) - 1), Integer.valueOf(day));
return cal.getDisplayName(cal.get(Calendar.DAY_OF_WEEK), Calendar.LONG, Locale.getDefault());
}
}
原文由 Said 发布,翻译遵循 CC BY-SA 4.0 许可协议
你的
return
已关闭;您不希望cal.get
在 ---cal.getDisplayName
--- 的第一列中。目前,我用你的代码得到了月份名称。将其更改为并称之为
我得到(如预期的那样)
在新代码中,我 更喜欢
java.time
(Java 8+)中的新类,以及DateTimeFormatter
- 比如,