Advertisement
namereq

カレンダー

Jun 23rd, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.33 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. int main(void)
  4. {
  5.     int year,month,yearm1,monthm1,sum,dayofweek,leapyear,leapyeartotal,days,i;
  6.     int zen_matsu[] = {0,3,3,6,1,4,6,2,5,0,3,5};
  7.     int day[] = {31,28,31,30,31,30,31,31,30,31,30,31};
  8.     char week[][7]  = {"日","月","火","水","木","金","土"};
  9.     printf("カレンダーを出す年を入れてください。>");
  10.     scanf("%d",&year);
  11.     printf("カレンダーを出す月を入れてください。>");
  12.     scanf("%d",&month);
  13.     yearm1 = year - 1;
  14.     monthm1 = month - 1;
  15.     leapyear = ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) ? 1 : 0;
  16.     leapyeartotal = yearm1 / 400 - yearm1 / 100 + yearm1 / 4;
  17.     sum = yearm1 + zen_matsu[monthm1] +
  18.         + leapyear
  19.         + leapyeartotal + 1;
  20.     dayofweek = sum % 7;
  21.     days = ((month != 2) || !leapyear) ? day[monthm1] : day[monthm1] + 1;
  22.    
  23.     /*
  24.     printf("%d年%d月はうるう年%s、1日が%s曜日で%d日あります。それでカレンダーを作ってください。\n"
  25.         ,year,month,leapyear ? "で":"ではなく" ,week[dayofweek],days);
  26.     */
  27.    
  28.     printf("      %d 年 %d 月 \n", year, month);
  29.    
  30.     for(i=0;i<7;i++) printf(" %s",week[i]);
  31.     printf("\n");
  32.    
  33.     for(i=0;i<21;i++) printf("-");
  34.     printf("\n");
  35.    
  36.     for(i=0;i<dayofweek;i++) printf("   ");
  37.     for(i=1;i<=days;i++) {
  38.         printf("%3d",i);
  39.         if((dayofweek + i - 1) % 7 == 6) printf("\n");
  40.     }
  41.    
  42.     return 0;
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement