달력

☆C언어/소스 2017. 11. 13. 21:53

#include<stdio.h>


int m_day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

char *week[7]={"일","월","화","수","목","금","토"};



int main()

{

int year,month,day;

int total;

int Ly;

int start[13];//각달 요일번호

int all_day[13][45]={0,};

int num1,num2,num3; //각출력 넘버

int num=1; //저장넘버


int s=1;//출력달번호

year=2012;

month=12;


//윤달 확인

if( (year%4==0) && ((year%400==0) || (year%100!=0)) )

m_day[2]=29;

else

m_day[2]=28;


//요일 계산

Ly=year-1;

total=(Ly+(Ly/4)-(Ly/100)+(Ly/400)+1);    //최근 +  -  +  +1


start[1]=total%7;

for(int i=1;i<12;i++)

{

total=total+m_day[i];

start[i+1]=total%7;

}


for(int m=1;m<13;m++)

{

printf("%d월\n",m);

printf("일월화수목금토\n");

num=1;

for(int i=1;i<=42;++i)

{

if(i<=start[m]) //공백2개다

printf("  ");

else

{

all_day[m][i]=num++;

printf("%2d",all_day[m][i]);

}


if(i%7==0 && i!=1)

{

printf("\n");

}

//마지막 찍히면 브래이크

if(num>m_day[m])

break;

}

printf("\n");


}


for(int i=0;i<4;i++)

{

printf("%d월\t\t\t%d월\t\t\t%d월\n",s,s+1,s+2);

printf("일월화수목금토\t\t일월화수목금토\t\t일월화수목금토\n");

num1=num2=num3=1;


for(int x=1;x<7;++x)

{

for(int j=1;j<8;++j)

{

if(all_day[s][num1]==0)

printf("  "); //공백 두개다

else

printf("%2d",all_day[s][num1]);

num1++;


}

printf("\t\t");


for(int j=1;j<8;++j)

{

if(all_day[s+1][num2]==0)

printf("  ");

else

printf("%2d",all_day[s+1][num2]);

num2++;


}

printf("\t\t");


for(int j=1;j<8;++j)

{

if(all_day[s+2][num3]==0)

printf("  ");

else

printf("%2d",all_day[s+2][num3]);

num3++;


}

printf("\n");



}

s+=3;


}







return 0;

}

'☆C언어 > 소스' 카테고리의 다른 글

문자열 숫자 쉽게 숫자로 바꾸기  (0) 2017.12.25
'q' 입력시 종료  (0) 2017.11.21
괄호 검사  (0) 2017.06.17
바이너리 파일 핸들링  (0) 2017.06.15
달력 문제  (0) 2017.06.14