解题代码
class Solution { static String[] ss = new String[]{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; static int[] nums = new int[]{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; public String dayOfTheWeek(int day, int month, int year) { //1970 的最后一天(星期四) int ans = 4; for(int i = 1971; i < year; i++ ) { boolean isLeap = (i % 4 == 0 && i % 100 != 0 ) || i % 400 == 0; ans += isLeap ? 366 : 365; } for(int i = 1; i < month; i++ ) { ans += nums[i - 1]; if(i == 2 && ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)) { ans++; } } ans += day; return ss[ans % 7]; }}
import java.util.Calendar;import java.util.Date;class Solution { public String dayOfTheWeek(int day, int month, int year) { String [] weeks = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; Calendar cal = Calendar.getInstance(); cal.setTime(new Date(year-1900,month - 1, day)); int w = cal.get(Calendar.DAY_OF_WEEK) - 1; if(w < 0 ) w= 0; return weeks[w]; }}