我在hackerrank.com上做了一个简单的例子,要求我们返回给定日期的那一天。例如:如果日期为2015年5月8日(月日),则应返回星期三。查找给定日期的星期几
这是我写的这个任务
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.time' API? 'LocalDate'比这个好得多。 (另外,按照日/月/年的顺序接受参数感觉很奇怪,而不是年/月/日;为什么接受它们是字符串而不是整数?如果调用代码只有字符串,它可以执行解析本身) –
@JonSkeet是的,我试了LocalDate。它比使用日历更好。 –