1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
# include <iostream>
# include <string>
using namespace std;
//Declaring Functions
void get_input(int&, int&, int&);
int getCenturyValue(int);
int getYearValue(int);
int getMonthValue(int, int);
int dayOfWeek(int, int, int);
//MAIN FUNCTION//////////////////////////////////////////////////////
int main(){
int month, day, year, tempyear;
get_input(month, day, year); //calling get_input fcn
dayOfWeek(month, day, year); //calling dayOfWeek fcn
return 0;
//isLeapYear fcn///////////////////////////////////////////////////////
}
bool isLeapYear(int year)
{
bool leap_year = false;
if ((year%400) || (year%4) && !(year % 100)){
leap_year = true;
}
return leap_year;
}
//get_input fcn/////////////////////////////////////////////////////////////
void get_input(int& month, int& day, int& year){
do{
cout << "Input a month, day and year: ";
cin >> month >> day >> year;
}while(cin.fail()); //keep asking for input if the integers are not valid
}
//getCenturyValue fcn/////////////////////////////////////////////////
int getCenturyValue(int year)
{
year = year/100;
year = year%4;
year = 3 - year;
return year*2;
}
//getYearValue fcn//////////////////////////////////////////////////
int getYearValue(int year)
{
int tempyear;
year = year%100;
tempyear = year/4;
return year + tempyear;
}
//getMonthValue fcn///////////////////////////////////////////////////
int getMonthValue(int month, int year)
{
isLeapYear(year);
if(isLeapYear == true && month == 1){return 6;} //Error
else if(isLeapYear == true && month == 2){return 2;}//Error
else{
switch(month){
case 1: return 0; break; case 2: return 3; break; case 3: return 3; break;
case 4: return 6; break; case 5: return 1; break; case 6: return 4; break;
case 7: return 6; break; case 8: return 2; break; case 9: return 5; break;
case 10: return 0; break; case 11: return 3; break; case 12: return 5; break;
default: cout << "Input 1-12"; break;
}
}
}
// dayOfWeek fcn////////////////////////////////////////////////////////////
int dayOfWeek(int month, int day, int year)
{
int tempyear;
int dayOfWeek = (day + getMonthValue(month, year) + getYearValue(year) + getCenturyValue(year))%7;
string dayOfTheWeek;
switch(dayOfWeek){
case '0': dayOfTheWeek = "Sunday"; break;
case '1': dayOfTheWeek = "Monday"; break;
case '2': dayOfTheWeek = "Tuesday"; break;
case '3': dayOfTheWeek = "Wednesday"; break;
case '4': dayOfTheWeek = "Thursday"; break;
case '5': dayOfTheWeek = "Friday"; break;
case '6': dayOfTheWeek = "Saturday"; break;
}
cout << "The date " << month << "/" << day << "/" << year << " is a " << dayOfTheWeek;
}
|