Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- int daysInMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
- string dayName[] = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
- bool isLeap(int year) {
- return !(year % 4) && (year % 100) || !(year % 400);
- }
- int getDayNumber(int year, int month, int day) {
- int currentDay = 2;
- --month;
- for (int i = 1800; i < year; ++i) currentDay = (currentDay + 365 + isLeap(i)) % 7;
- for (int i = 0; i < month; ++i) currentDay = (currentDay + daysInMonth[i]) % 7;
- if (isLeap(year) && month > 1) currentDay = (++currentDay) % 7;
- currentDay = (currentDay + day - 1) % 7;
- return currentDay;
- }
- int main() {
- int year, month, day;
- cin >> day >> month >> year;
- cout << dayName[getDayNumber(year, month, day)] << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment