- Calender.h 파일 - 만들야 할 함수. 더 려도 관 없습니다.ass='line-anchor' id='line-210'>an>
// 한 의 달을 출력하는 함수니다.
void printCalender(int nameOfDay, int year, int month);
// 달의 첫 날 요일(nameOfDay)과 마지막 의 수 받아서 1~endDayOfMonth까지 력합다.
void printDate(int nameOfDay, int endDayOfMonth);
// 달의 1일 앞의 부에 빈 요일 만큼 ('\t') 넣습니다.
void printFirstTab(int nameOfDay);
// 달력 첫 머 부분(월, 년도, 한 줄, 요 표시)을 출합니.
void printHeader(int year, int month);
// 다음 달의 날의 요일 반환니다.
int calculateNameOfNextMonthFirstDay(int nameOfDay, int year, int month);
// 해당 달의 지막 날의 일을 환합다.
int calculateNameOfLastDay(int nameOfDay, int year, int month);
// 윤달 체크.
bool isLeapYear(int year);
// 각 의 마막 날 수를 환합다.
// 단순한 switch-case문으로 루어 있으, 2월 대해서는 달 체를 합니다.
int endDayOfMonth(int year, int month);
// 각 일의 자를 받아서 문자 값을 반환합니다. (ex. 0-"Sun", 1-"Mon" ...)
// 단순한 switch-case문으로 루어 있습다.
char *printMonthName(int i);
- main.cpp 파일an class='line-anchor' id='line-233'><br />
#include <stdio.h>
#include "Calender.h"
int main(int argc, char *args[]) {
// year 요일(nameOfDay)을 입력받는 부분.
int year = 0, nameOfDay = 0;
printf("Enter the year : ");
scanf("%d", &year);
printf("Enter the name of day(0:sun ~ 6:sat) : ");
scanf("%d", &nameOfDay);
// 1~12을 출력하는 부분.
for ( int month = 1; month <= 12; month++ ) {
printCalender(nameOfDay, year, month);
nameOfDay = calculateNameOfNextMonthFirstDay(nameOfDay, year, month);
}
return 0;
}
- sample output - 1부터 12월까. 출을 예게 하고 싶면 탭('\t')을 쓰면 니다.<span class='line-anchor' id='line-255'>>
January, 2012
-------------------------------------------------
Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31