Tranvick

Лена

Sep 26th, 2013
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.83 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. int daysInMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
  7. string dayName[] = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
  8.  
  9. bool isLeap(int year) {
  10.     return !(year % 4) && (year % 100) || !(year % 400);
  11. }
  12.  
  13. int getDayNumber(int year, int month, int day) {
  14.     int currentDay = 2;
  15.     --month;
  16.     for (int i = 1800; i < year; ++i) currentDay = (currentDay + 365 + isLeap(i)) % 7;
  17.     for (int i = 0; i < month; ++i) currentDay = (currentDay + daysInMonth[i]) % 7;
  18.     if (isLeap(year) && month > 1) currentDay = (++currentDay) % 7;
  19.     currentDay = (currentDay + day - 1) % 7;
  20.     return currentDay;
  21. }
  22.  
  23. int main() {
  24.     int year, month, day;
  25.     cin >> day >> month >> year;
  26.     cout << dayName[getDayNumber(year, month, day)] << endl;
  27.     return 0;
  28. }
Advertisement
Add Comment
Please, Sign In to add comment