LeetCode Daily 5
2022-1-4 T1185.一周中的第几天
开心??Happy~
题目描述:
给你一个日期,请你设计一个算法来判断它是对应一周中的哪一天。 输入为三个整数:day、month 和 year,分别表示日、月、年。 您返回的结果必须是这几个值中的一个 {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}。
示例:
输入:day = 31, month = 8, year = 2019 输出:"Saturday"
代码:
class Solution { public: string dayOfTheWeek(int day, int month, int year) { vector<string> ans {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; int res = 0; for(int i = 1971; i < year; i++) { if(isYear(i)) res += 365; else res += 366; } if(month > 2) { if(isYear(year)) res += sumDay(month) + day; else res += sumDay(month) + day + 1; } else{ res += sumDay(month) + day; } return ans[(res + 4) % 7]; //1971-1-1是周四 } bool isYear(int year) { if((year % 4 != 0) || (year % 100 == 0 && year % 400 != 0)) return true; else return false; } int sumDay(int n) { vector<int> daynum {31,28,31,30,31,30,31,31,30,31,30,31}; int res = 0; for(int i = 0; i < n - 1; i++) { res += daynum[i]; } return res; } };