一个日历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;

}


 
 

转载于:https://www.cnblogs.com/xpchenscoding/archive/2012/03/09/2785523.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值