imported>gnstjdok |
imported>gnstjdok |
| Line 9: |
Line 9: |
| int daysOfMonth(int month, int year); | | int daysOfMonth(int month, int year); |
| int IsLeafYear(int year); | | int IsLeafYear(int year); |
|
| |
| void printCalender(int year, int first)
| |
| {
| |
| int month, leftDays;
| |
|
| |
| for(month = 1 ; month <= 12 ; month++)
| |
| {
| |
| printFirstTab(month, year);
| |
| leftDays = printDays(month, year, first);
| |
| first = leftDays;
| |
| }
| |
| }
| |
|
| |
| void printFirstTab(int month, int year)
| |
| {
| |
| switch(month)
| |
| {
| |
| case 1:
| |
| printf(" January %d \n", year);
| |
| break;
| |
| case 2:
| |
| printf(" February %d \n", year);
| |
| break;
| |
| case 3:
| |
| printf(" March %d \n", year);
| |
| break;
| |
| case 4:
| |
| printf(" April %d \n", year);
| |
| break;
| |
| case 5:
| |
| printf(" May %d \n", year);
| |
| break;
| |
| case 6:
| |
| printf(" June %d \n", year);
| |
| break;
| |
| case 7:
| |
| printf(" July %d \n", year);
| |
| break;
| |
| case 8:
| |
| printf(" August %d \n", year);
| |
| break;
| |
| case 9:
| |
| printf(" September %d \n", year);
| |
| break;
| |
| case 10:
| |
| printf(" October %d \n", year);
| |
| break;
| |
| case 11:
| |
| printf(" November %d \n", year);
| |
| break;
| |
| case 12:
| |
| printf(" December %d \n", year);
| |
| break;
| |
| }
| |
| printf("---------------------------------------------------\n");
| |
| printf("Mon Tue Wed Thu Fri Sat Sun\n");
| |
| }
| |
|
| |
| int printDays(int month, int year, int leftDays)
| |
| {
| |
| int cnt = 0;
| |
| int day = daysOfMonth(month, year);
| |
|
| |
| for(int i = 1 ; i <= leftDays ; i++)
| |
| {
| |
| print_space(); //print space leftDays times
| |
| cnt++;
| |
| }
| |
|
| |
| for(int nowday = 1 ; nowday <= day ; nowday++) //print day from 1 to day
| |
| {
| |
| if(cnt == 7){
| |
| printf("\n");
| |
| cnt = 0;
| |
| }
| |
|
| |
| print_days(nowday);
| |
| cnt++;
| |
| }
| |
|
| |
| printf("\n\n");
| |
| return cnt;
| |
| }
| |
|
| |
| void print_space()
| |
| {
| |
| printf("\t");
| |
| }
| |
|
| |
| void print_days(int day)
| |
| {
| |
| printf("%d\t", day);
| |
| }
| |
|
| |
| int daysOfMonth(int month, int year)
| |
| {
| |
| int days;
| |
|
| |
| switch(month)
| |
| {
| |
| case 1:
| |
| case 3:
| |
| case 5:
| |
| case 7:
| |
| case 8:
| |
| case 10:
| |
| case 12:
| |
| days = 31;
| |
| break;
| |
|
| |
| case 4:
| |
| case 6:
| |
| case 9:
| |
| case 11:
| |
| days = 30;
| |
| break;
| |
|
| |
| case 2:
| |
| if(IsLeafYear(year) == 0) days = 29;
| |
| else days = 28;
| |
| break;
| |
| }
| |
|
| |
| return days;
| |
| }
| |
|
| |
| int IsLeafYear(int year)
| |
| {
| |
| if(year%4 == 0)
| |
| return 0; //True
| |
|
| |
| if(year%100 == 0)
| |
| return 1; //False
| |
|
| |
| if(year%400 == 0)
| |
| return 0; //True
| |
| else
| |
| return 1; //False
| |
| }
| |
| == main.cpp == | | == main.cpp == |
|
| |
|
Calendar.h
#include <stdio.h>
void printCalender(int year, int first);
void printFirstTab(int month, int year);
int printDays(int month, int year, int leftDays);
void print_space();
void print_days(int day);
int daysOfMonth(int month, int year);
int IsLeafYear(int year);
main.cpp
- include <stdio.h>
- include "Calender.h"
int main()
{
int year, first;
printf("Input the year : ");
scanf("%d", &year);
printf("Input the first day of week in January (0:Mon -- 6:Sun)");
scanf("%d", &first);
printCalender(year, first);
fflush(stdin);
getchar();
return 0;
}