c语言编万年历算法,C语言编万年历

满意答案

有问题hi我哈~

#include

int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

void print_calendar(int y);

void main()

{

int y;

printf("Calendar system :\n");

printf("Please input a year between 1600 & 2500:");

while(scanf("%d",&y)!=EOF)

{

if (y<1600 || y>2500)

{

printf("Invalid input. Please try again!\n");

printf("Please input a year between 1600 & 2500:");

continue;

}

print_calendar(y);

}

}

void print_calendar(int y) //打印日历

{

int i,sum,days,k,m;

char monthname[12][20] = {"January","February","March","April","May","June","July","August","September","October","November","December"};

if((0==y%4&&y%100!=0)||0==y%400 ) //闰年判断

month[2]=29;

for(m=1;m<13;m++)

{

days = 0;

for (i=1;i

days+=month[i];

days++;

sum=y-1+(y-1)/4-(y-1)/100+(y-1)/400+days;

k=sum%7; //k是星期几,k=0星期日

printf("%s %d\n",monthname[m-1],y);

printf(" S M Tu W Th F S\n");

printf("%*d",3*(k+1)-1,1);//先输出3*(k+1)-1个空格,在输出1

k++;

for(i=2;i<=month[m];i++)

{

if(k == 7)

{

printf("\n");

k=0;

}

if (k == 0)

printf("%2d",i);

else

printf("%3d",i);

k++;

}

printf("\n\n");

}

}

00分享举报

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值