【发布时间】:2017-10-29 07:55:18
【问题描述】:
我在hackerrank.com 中做了一个简单的例子,它要求我们返回给定日期的日期。例如:如果日期是 2015 年 8 月 5 日(年月日),则应返回 WEDNESDAY。
这是我为此任务编写的代码
public static String getDay(String day, String month, String year) {
String[] dates=new String[]{"SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"};
Calendar cal=Calendar.getInstance();
cal.set(Integer.valueOf(year),Integer.valueOf(month),Integer.valueOf(day));
int date_of_week=cal.get(Calendar.DAY_OF_WEEK);
return dates[date_of_week-1];
}
对于应该是“星期三”的给定示例,我的代码返回“星期六”。对于当前日期 2017 年 10 月 29 日,它返回“星期三”。 谁能帮我解决这个问题?
【问题讨论】:
-
你真的必须使用
Calendar而不是更现代的java.timeAPI吗?LocalDate比这要好得多。 (另外,以日/月/年而不是年/月/日的顺序接受参数感觉很奇怪;为什么接受它们作为字符串而不是整数?如果调用代码只有字符串,它可以自己执行解析.) -
@JonSkeet 是的,我试过 LocalDate。这比使用日历更好。
标签: java datetime calendar datetime-format dayofweek