東方厨がまったりうpするだけ -15ページ目

東方厨がまったりうpするだけ

主に趣味ばかりのブログです、

コンパイルは各自で。
と言ってもただのカレンダーですけどねw
/*ここからソースコード*/
#include
#include
#define TRUE 1
#define FALSE 0


int get_year (void)
{
int year=2012;
printf ("西暦を入力してください");
scanf ("%d", &year);
return year;
}
int get_day_code (int year)
{
int day_code;
int x1, x2, x3;
x1 = (year - 1.)/ 4.0;
x2 = (year - 1.)/ 100.;
x3 = (year - 1.)/ 400.;
day_code = (year + x1 - x2 + x3) %7;
return day_code;
}
int get_leap_year (int year)
{

//if((year% 4) == 0 );
if(year% 4==0 && year%100 != 0 || year%400==0)
 return TRUE;
else return FALSE;

}
void print_calendar (int year, int day_code, int leap_year) //function header
{
int  days_in_month,     /* number of days in month currently
                        being printed */
                        day,       /* counter for day of month */
                        month;     /* month = 1 is Jan, month = 2 is Feb, etc. */
printf ("                   %d", year);
for ( month = 1; month <= 12; month++ ) {
 switch ( month ) { /* print name and set days_in_month */
         case 1:
          printf("\n\nJanuary" );
          days_in_month = 31;
          break;
         case 2:
          printf("\n\nFebruary" );
          days_in_month = leap_year ? 29 : 28;
          break;
         case 3:
          printf("\n\nMarch" );
          days_in_month = 31;
          break;
         case 4:
          printf("\n\nApril" );
          days_in_month = 30;
          break;
         case 5:
          printf("\n\nMay" );
          days_in_month = 31;
          break;
         case 6:
          printf("\n\nJune" );
          days_in_month = 30;
          break;
         case 7:
          printf("\n\nJuly" );
          days_in_month = 31;
          break;
         case 8:
          printf("\n\nAugust" );
          days_in_month = 31;
          break;
         case 9:
          printf("\n\nSeptember" );
          days_in_month = 30;
          break;
         case 10:
          printf("\n\nOctober" );
          days_in_month = 31;
          break;
         case 11:
          printf("\n\nNovember" );
          days_in_month = 30;
          break;
         case 12:
          printf("\n\nDecember" );
          days_in_month = 31;
          break;
 }
 printf("\n\nSun  Mon  Tue  Wed  Thu  Fri  Sat\n" );
 /* advance printer to correct position for first date */
 for ( day = 1; day <= 1 + day_code * 5; day++ )
  printf(" " );
 /* print the dates for one month */
 for ( day = 1; day <= days_in_month; day++ ) {
  printf("%2d", day );
0 ) /* before Sat? */
   /* move to next day in same week */
   printf("   " );
  else  /* skip to next line to start with Sun */
   printf("\n " );
 }
 /* set day_code for next month to begin */
 day_code = ( day_code + days_in_month ) % 7;
}
}

void main()
{
int year, day_code, leap_year;

year = get_year();
day_code = get_day_code (year);
leap_year = get_leap_year (year);
print_calendar(year, day_code, leap_year);

}
/*ここまでソースコード*/
/*また、endechest@yahoo.co.jpまでソースコードや、.cファイルを送っていただけると、うp主はわりと喜ぶかもしれません*/