Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted as C++ by registered user Juggerhale ( 10 years ago )
#include <stdio>
#include <Windows>
int yeardet (int year) {
if (year % 4==0) {
if (year % 100==0) {
if (year % 400==0) {
return 2;
}
else { return 1; }
}
else { return 2; }
}
else { return 1; }
//윤년 = 2 평년 = 1
}
int printcal(int d, int month, int year, int monthday) {
printf("______________________________________________________\n");
printf("\t\t %d년 %d월 달력\n", year, month);
printf("______________________________________________________\n");
printf("일\t월\t화\t수\t목\t금\t토\n");//윗 작업
for (int i = 0; i < d; i++) {
printf("\t");//앞 띄기
}
for (int j = 1; j < monthday + 1; j++,d++) {
printf("%d", j);
printf("\t");//일 표시
if (d % 7 == 6) {
printf("\n");
}//띄어쓰기
}
printf("\n");//마무리
return 0;
}
int main() {
while (1) {
int year, month, monthday;
printf("년 / 월 ? \n");
scanf("%d", &year);
scanf("%d", &month);
system("cls");
int d = 6;//1583년 1월 1일은 토요일
for (int i = 1583; i < year; i++) {
d = d + yeardet(i);
} //d 년작업
if (yeardet(year) == 1) {
int monthdays[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
monthday = monthdays[month];
for (int j = 0; j < month; j++) {
d = d + monthdays[j];
}
}
else {
int monthdays[13] = { 0,31,29,31,30,31,30,31,31,30,31,30,31 };
monthday = monthdays[month];
for (int j = 0; j < month; j++) {
d = d + monthdays[j];
}
} //d 윤달계산
d = d % 7;//d 마무리
printcal(d, month, year, monthday); //표현
system("pause");
system("cls");
}// 무한반복
return 0;
}
Revise this Paste