본문 바로가기
C 언어

C 언어로 달력 만들기

by treeCoder 2021. 1. 24.

C 언어로 달력 만들기 코드이다.

#include <stdio.h>
#include <stdlib.h>

void calendar( ) { int d=1, days, i, j=0, l, m, y, y2;
    int dayofweek;
    
    system("time/t");
    system("date/t");

    printf("Enter year and month. (like 2018 5)\n* ");
    scanf("%d %d",&y, &m); getchar();
    y2=y;
    
    if( (y % 4 == 0 && y % 100 != 0) || y % 400 == 0)
        l=1;
    else
        l=0;
    
    if(m == 4 || m == 6 || m == 9 || m == 11)
        days=30;
    else if(m == 2)
        days=28+l;
    else
        days=31;
    
    if(m < 3 )
        d = d + y--;
    else
        d = d + y-2;
    
    dayofweek = 23*m/9 + d+4 + y/4- y/100 + y/400;
    dayofweek = dayofweek % 7;
    
    printf("\n %4d - %2d\n\n", y2, m);
    printf(" Sun,Mon,Tue,Wed,Thu,Fri,Sat\n");
    
    while(dayofweek--){
        j++;
        printf("   ,");
    }
    
    for(i = j+1; i <=days+j; i++) {
        printf("%3d,", i-j);
        
        if(i%7==0) printf ("\n\n");
    }
    
    printf("\n\n3.1 5.5 -5.8 x5.22 6.6 8.15 ");
    printf("10.3 10.9 12.25\n");
}

int main( ) {

    calendar();
    return 0;
    
}

실행결과는 다음과 같다.

여러 달을 한꺼번에 12개월의 달력을 출력하여 저장하려면, 다음 Batch  파일을 사용하면 된다. (Batch file의 이름은 calen.bat으로 저장한다.) 결과는 cal_12.csv 파일에 결과가 저장된다.

 

calen.bat 2022 라고 Command Window에서 입력하면 

2022 년 1월 부터 12월 까지 한꺼번에 cal_12.csv 파일에 저장된다.

 

@echo off

if [%1]==[] (
  echo. 
  echo   Usage is as follows
  echo. 
  echo       %0 2022
  echo       %0 2023
  echo            .........
  echo       %0 2030
  echo       and so on.
  echo. 
  goto :eof
)

echo. > cal_12.csv

for %%G in ( 1 2 3 4 ) do (
    echo. >> cal_12.csv
)

for %%G in ( 1 2 3 4 5 6 7 8 9 10 11 12 ) do (
    echo %1 %%G > t_e_m_p_x_y_z.txt
    calen.exe < t_e_m_p_x_y_z.txt >> cal_12.csv
)

del t_e_m_p_x_y_z.txt

댓글