一個日曆C程序

由於C語言當初沒學好,像C的結構體,文件流,指針等都還弄不明白。

現在又撿起來再看一本C語言的書--Application Programming in Ansi C

下面是最近的一個代碼,關於打印日曆的。

/*Calendar
打印出某年的日曆,由用戶指出1月1日是星期幾以及該年是否爲閏年。
表示1月1日是星期幾的編碼:
0 Sunday 1 Monday 2 Tuesday  3 Wednesday 4 Thuray 5 Friday 6 Saturday
表示是否爲閏年的編碼:
0 不是  1  是
@author Jeff Chen
@version 1.0 date:2012-03-08
*/

#include<stdio.h>

int main()
{
  int day_code;
  int leap_year;
  do{
    printf("Enter day and leap year code:");
    scanf("%d%d",&day_code,&leap_year);
  }while(day_code<0||day_code>6);
  int days_in_month;
  int month;
  int day;
  for(month=1;month<=12;month++)
   {
     switch(month)
       {
     case 1:
       printf("\n\n\tJanuary");
       days_in_month=31;
       break;
     case 2:
       printf("\n\n\tFebruary");
       days_in_month=leap_year ? 29:28;
       break;
     case 3:
       printf("\n\n\tMarch");
       days_in_month=31;
       break;
     case 4:
       printf("\n\n\tApril");
       days_in_month=30;
       break;
     case 5:
       printf("\n\n\tMay");
       days_in_month=31;
       break;
     case 6:
       printf("\n\n\tJune");
       days_in_month=30;
       break;
     case 7:
       printf("\n\n\tJuly");
       days_in_month=31;
       break;
     case 8:
       printf("\n\n\tAugust");
       days_in_month=31;
       break;
     case 9:
       printf("\n\n\tSeptember");
       days_in_month=30;
       break;
     case 10:
       printf("\n\n\tOctober");
       days_in_month=31;
       break;
     case 11:
       printf("\n\n\tNovember");
       days_in_month=30;
       break;
     case 12:
       printf("\n\n\tDecember");
       days_in_month=31;
       break;
     }
     //輸出星期
     printf("\n\nSun  Mon  Tue  Wed  Thu  Fri  Sat\n");
     for(day=1;day<day_code*5+1;day++)
       {
	 printf(" ");
       }
     for(day=1;day<=days_in_month;day++)
       {
	 printf("%2d ",day);
	 if((day+day_code)%7>0)
	   printf("  ");
	 else
	   printf("\n");
       }
     //設置下一個星期的星期代碼
     day_code=(day_code+days_in_month)%7;
   }
  return 0;

}




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章