주어진 날짜에 요일을 반환하는 간단한 프로그램을 C++로 작성하려고합니다.주어진 날짜에 대한 C++ 요일
입력 형식은 일, 월, 년입니다. 나는 윤년으로 일할 수 없다. 입력 연도가 윤년 인 경우 a
변수에서 1을 뺀 것을 시도했지만 오류 메시지없이 프로그램이 종료됩니다.
나는 어떤 제안이라도 고맙겠지 만, 단순하게 유지하려고 노력한다. 나는 아직 초보자이다. 어리석은 질문에 사과하고 제 실수를 용서하십시오.이 사이트에 게시하는 것은 이번이 처음입니다.
#include <iostream>
#include <string>
#include <vector>
#include <cmath>
using namespace std;
int d;
int m;
int y;
string weekday(int d, int m, int y){
int LeapYears = (int) y/ 4;
long a = (y - LeapYears)*365 + LeapYears * 366;
if(m >= 2) a += 31;
if(m >= 3 && (int)y/4 == y/4) a += 29;
else if(m >= 3) a += 28;
if(m >= 4) a += 31;
if(m >= 5) a += 30;
if(m >= 6) a += 31;
if(m >= 7) a += 30;
if(m >= 8) a += 31;
if(m >= 9) a += 31;
if(m >= 10) a += 30;
if(m >= 11) a += 31;
if(m == 12) a += 30;
a += d;
int b = (a - 2) % 7;
switch (b){
case 1:
return "Monday";
case 2:
return "Tuesday";
case 3:
return "Wednesday";
case 4:
return "Thursday";
case 5:
return "Friday";
case 6:
return "Saturday";
case 7:
return "Sunday";
}
}
int main(){
cin >> d >> m >> y;
cout << weekday(d, m, y);
}
당신이 당신의 디버거에서 단계별로하면 어떻게됩니까? – MrEricSir
날짜와 관련하여 간단한 프로그램과 같은 것은 없습니다 (Jon skeet에 문의하십시오). 그 기능은 이미 재창조 된 이유입니다. –
계산을 수행하는 간단한 공식이 있습니다. https://en.wikipedia.org/wiki/Determination_of_the_day_of_the_week를 참조하십시오. –