Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Calendar성훈이코드: Difference between revisions

From ZeroWiki
imported>gnstjdok
No edit summary
imported>gnstjdok
No edit summary
Line 1: Line 1:
== Calendar.h ==
== 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);
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 ==



Revision as of 09:19, 22 May 2012

Calendar.h

  1. 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);

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

  1. include <stdio.h>
  2. 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; }