Day of the Week LeetCode solution in C++

1
class Solution {
2
public:
3
int daysOfMonth[2][12] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,
4
31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
5
string weekName[7] = {"Sunday", "Monday", "Tuesday", "Wednesday",
6
"Thursday", "Friday", "Saturday"};
7
bool isleapyear(int year) {
8
return ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0));
9
}
10
int daystill1971(int year, int month, int day) {
11
int count = 0;
12
int year1 = 1970, month1 = 1, day1 = 1;
13
while (year1 != year) {
14
bool b = isleapyear(year1);
15
if (b)
16
count += 366;
17
else
18
count += 365;
19
year1++;
20
}
21
int b = isleapyear(year1) ? 0 : 1;
22
for (int i = 0; i < month - 1; i++) count += daysOfMonth[b][i];
23
count += day - 1;
24
return count;
25
}
26
string dayOfTheWeek(int day, int month, int year) {
27
int days1 = daystill1971(2019, 9, 8); // today(2019,9,8) is Sunday
28
int days2 = daystill1971(year, month, day);
29
int days = (((days2 - days1) % 7) + 7) % 7; // Number of days off
30
return weekName[days];
31
}
32
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0