2016年のカレンダーを表示するプログラム

/* 2016年のカレンダーを表示するプログラム */

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

void Calendar(int i); // カレンダーの表示

int main()
{
int month;

printf("\n\n\n\n2016年のカレンダー\n\n\n\n\n");

printf("表示するカレンダーの月を入力してください\n");

do{
scanf("%d", &month);

if(month < 1 || month > 12)
printf("もう一度入力してください\n\n\n");
}while(month < 1 || month > 12); // 月の入力(適切な数字が入力されるまで繰り返し)

Calendar(month);

return 0;
}

void Calendar(int i)
{
int x, y, z;
int day[42];
int month[12] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int start[12] = {5, 1, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4};

for(x = 1; x <= month[i - 1]; x++){
y = start[i - 1];
day[y + x - 1] = x;
}

for(x = 41; x >= month[i - 1] + start[i - 1]; x--){
day[x] = 0;
}

printf("\n\n\n\nSUN\tMON\tTUE\tWED\tTHU\tFRI\tSAT\n\n");
printf("%d\t%d\t%d\t%d\t%d\t%d\t%d\n\n", day[0], day[1], day[2], day[3], day[4], day[5], day[6]);
printf("%d\t%d\t%d\t%d\t%d\t%d\t%d\n\n", day[7], day[8], day[9], day[10], day[11], day[12], day[13]);
printf("%d\t%d\t%d\t%d\t%d\t%d\t%d\n\n", day[14], day[15], day[16], day[17], day[18], day[19], day[20]);
printf("%d\t%d\t%d\t%d\t%d\t%d\t%d\n\n", day[21], day[22], day[23], day[24], day[25], day[26], day[27]);
printf("%d\t%d\t%d\t%d\t%d\t%d\t%d\n\n", day[28], day[29], day[30], day[31], day[32], day[33], day[34]);
printf("%d\t%d\t%d\t%d\t%d\t%d\t%d\n\n", day[35], day[36], day[37], day[38], day[39], day[40], day[41]);

}

 

 

 

実行例:

 


hiratatomoki-no-MacBook-Air:20160417 tomonorihirata$ ./calendar

 


2016年のカレンダー

 


表示するカレンダーの月を入力してください
4

 


SUN MON TUE WED THU FRI SAT

0 0 0 0 0 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

0 0 0 0 0 0 0