Sai*_*aid 5 java date dayofweek java.util.calendar
我正在尝试在HackerRank上完成名为Java Date and Time的任务.
任务
你有一个约会.您只需要编写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());
}
}
Run Code Online (Sandbox Code Playgroud)
你return不在; 你不想要cal.get在第一列cal.getDisplayName.目前,我使用您的代码获取月份名称.改为
return cal.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.getDefault());
Run Code Online (Sandbox Code Playgroud)
并称之为
public static void main(String[] args) {
System.out.println(getDay("14", "8", "2017"));
}
Run Code Online (Sandbox Code Playgroud)
我得到了(正如预期的那样)
Monday
Run Code Online (Sandbox Code Playgroud)
在新代码中,我更喜欢java.time(Java 8+)中的新类,以及DateTimeFormatter类似的,
public static String getDay(String day, String month, String year) {
int y = Integer.parseInt(year), m = Integer.parseInt(month), d = Integer.parseInt(day);
return java.time.format.DateTimeFormatter.ofPattern("EEEE")
.format(LocalDate.of(y, m, d));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12561 次 |
| 最近记录: |