給你一個日期缓屠,請你設(shè)計一個算法來判斷它是對應(yīng)一周中的哪一天畜普。
輸入為三個整數(shù):day期丰、month 和 year,分別表示日吃挑、月钝荡、年。
您返回的結(jié)果必須是這幾個值中的一個 {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}舶衬。
示例 1:
輸入:day = 31, month = 8, year = 2019
輸出:"Saturday"
示例 2:
輸入:day = 18, month = 7, year = 1999
輸出:"Sunday"
示例 3:
輸入:day = 15, month = 8, year = 1993
輸出:"Sunday"
提示:
給出的日期一定是在 1971 到 2100 年之間的有效日期埠通。
java代碼:
class Solution {
public String dayOfTheWeek(int day, int month, int year) {
String[] week = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
int[] monthDays = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30};
/* 輸入年份之前的年份的天數(shù)貢獻(xiàn) */
int days = 365 * (year - 1971) + (year - 1969) / 4;
/* 輸入年份中,輸入月份之前的月份的天數(shù)貢獻(xiàn) */
for (int i = 0; i < month - 1; ++i) {
days += monthDays[i];
}
if ((year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) && month >= 3) {
days += 1;
}
/* 輸入月份中的天數(shù)貢獻(xiàn) */
days += day;
return week[(days + 3) % 7];
}
}