년도 입력하면 달력을 이렇게요
1월 2월 3월
4월 5월 6월
7월 8월 9월
10월 11월 12월
이렇게 출력하고 싶은데.. 안되네요.ㅠ
어디를 고쳐야 하나요?ㅠ
#include <stdio.h>
void pcal(int year, int month);
int newLineCount = 0;
int main(void)
{
int year, month;
// 년과 월 입력받기
while(1)
{
printf("년도를 입력하세요. : ");
scanf("%d", &year);
if(year == 0)
break;
for(month=1;month<=12;month++)
{
pcal(year, month);
}
break;
}
return 0;
}
void pcal(int year, int month)
{
int i;
int day[] = { 31, 28, 31, 30,
31, 30, 31, 31,
30, 31, 30, 31 };
int allday, week;
// 올해가 윤년일 경우 2월의 마지막 날을 하루 더함
if( year%4 == 0 && ( year%400 == 0 || year%100 != 0 ) )
day[1] = 29;
// 이전 월까지의 날짜 계산
allday = (year-1)*365 + (year-1)/4 - (year-1)/100 + (year-1)/400; // 이전 해
for(i=0; i<month-1; i++)
allday += day[i]; // 이전 월
// 그 달의 시작 주를 계산
week = (allday+1) %7;
// 달력 출력
printf("\t %d month\n",i+1);
printf(" Sun Mon Tue Wed Thu Fri Sat");
for(i=0; i-week+1<=day[month-1]; i++)
{
if(i%7 == 0)
printf("\n");
if(i<week)
printf(" ");
else
printf("%4d", i-week+1);
} newLineCount ++;
if( (newLineCount%3)==0)
printf("\n\n\n\n");
// printf("\n");
}
|