【发布时间】:2018-07-27 00:05:57
【问题描述】:
我正在尝试在 HackerRank 上完成名为 Java 日期和时间 的任务。
任务
给你一个日期。您只需要编写方法 getDay,它 返回该日期的日期。例如,如果给定日期, 2017 年 8 月 14 日,该方法应返回 MONDAY 作为那一天 日期。
我尽最大努力完成任务,但我得到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());
}
}
【问题讨论】:
-
LocalDate.of( 2017 , 8 , 14 ).getDayOfWeek().toString()—> 星期一 -
除非您需要它来处理遗留代码,否则您可能在浪费时间学习过时的 API...
-
@BasilBourque 这是 Java 8,对吧?
-
@assylias 我刚刚开始在 HackerRank 上进行挑战。我是一个真正的编程新手,但我想最终成为一名优秀的有竞争力的程序员。如果你有更好的建议,我会很高兴听到它:)
-
@SaidBuyukarslan java.time 类内置于 Java 8 及更高版本中。在 ThreeTen-Backport 项目中,它们的大部分功能都向后移植到 Java 6 和 7。非常值得添加到您的项目中,因为遗留类是一团糟。搜索堆栈溢出以获取更多信息。这个问题已经解决了很多次了。
标签: java date dayofweek java.util.calendar