打印日历

 趣味程序设计_打印日历

题目描述

打印出任意年份的日历。提示:要判断该年份是否是闰年,若是闰年,二月为29天,平年为28天。而判断闰年的规则是:如果((该年能被4除尽且不能被100除尽) 或 能被400除尽),则该年是闰年。

输入

输入年份。

输出

与输入相对应,输出该年12个月的日历。

样例输入

2012

样例输出

*Mon Tue Wed Thu Fri Sat Sun
                           1
   2   3   4   5   6   7   8
   9  10  11  12  13  14  15
  16  17  18  19  20  21  22
  23  24  25  26  27  28  29
  30  31
*Mon Tue Wed Thu Fri Sat Sun
           1   2   3   4   5
   6   7   8   9  10  11  12
  13  14  15  16  17  18  19
  20  21  22  23  24  25  26
  27  28  29
*Mon Tue Wed Thu Fri Sat Sun
               1   2   3   4
   5   6   7   8   9  10  11
  12  13  14  15  16  17  18
  19  20  21  22  23  24  25
  26  27  28  29  30  31
*Mon Tue Wed Thu Fri Sat Sun
                           1
   2   3   4   5   6   7   8
   9  10  11  12  13  14  15
  16  17  18  19  20  21  22
  23  24  25  26  27  28  29
  30
*Mon Tue Wed Thu Fri Sat Sun
       1   2   3   4   5   6
   7   8   9  10  11  12  13
  14  15  16  17  18  19  20
  21  22  23  24  25  26  27
  28  29  30  31
*Mon Tue Wed Thu Fri Sat Sun
                   1   2   3
   4   5   6   7   8   9  10
  11  12  13  14  15  16  17
  18  19  20  21  22  23  24
  25  26  27  28  29  30
*Mon Tue Wed Thu Fri Sat Sun
                           1
   2   3   4   5   6   7   8
   9  10  11  12  13  14  15
  16  17  18  19  20  21  22
  23  24  25  26  27  28  29
  30  31
*Mon Tue Wed Thu Fri Sat Sun
           1   2   3   4   5
   6   7   8   9  10  11  12
  13  14  15  16  17  18  19
  20  21  22  23  24  25  26
  27  28  29  30  31
*Mon Tue Wed Thu Fri Sat Sun
                       1   2
   3   4   5   6   7   8   9
  10  11  12  13  14  15  16
  17  18  19  20  21  22  23
  24  25  26  27  28  29  30
*Mon Tue Wed Thu Fri Sat Sun
   1   2   3   4   5   6   7
   8   9  10  11  12  13  14
  15  16  17  18  19  20  21
  22  23  24  25  26  27  28
  29  30  31
*Mon Tue Wed Thu Fri Sat Sun
               1   2   3   4
   5   6   7   8   9  10  11
  12  13  14  15  16  17  18
  19  20  21  22  23  24  25
  26  27  28  29  30
*Mon Tue Wed Thu Fri Sat Sun
                       1   2
   3   4   5   6   7   8   9
  10  11  12  13  14  15  16
  17  18  19  20  21  22  23
  24  25  26  27  28  29  30
  31

提示

重点是要将某天对应星期几算出来,其它就只要搞好排版就行了。

关于求星期几,可以先找一个基准,比如1年1月1日是星期一,或1990年1月1日是星期一,然后按7天一个周期,计算出任意一天是星期几。当然,这还需要知道每个月有多少天,2月份还要看是否是闰年。

代码:

 #include<stdio.h>
#include<stdlib.h>
int main()
{
int a,i,j,b,q,cha,z;
int  x[]={31,28,31,30,31,30,31,31,30,31,30,31};
 
scanf("%d",&a);
if(a%4==0&&a%100!=0)
x[1]=29;
if(a%400==0)
x[1]=29;
 
cha=a-2001;
if(cha>=0)
{z=cha/4;
cha=z*2+(cha-z);
b=cha%7;
b++;
}
else
{cha=2000-a;
z=cha/4;
cha=-z*2-(cha-z)+6;
b=cha%7;
b=b+7;
b=b%7;
 
}
 
 
for(i=0;i<12;i++)
{
 
 
 
printf("%4s%4s%4s%4s%4s%4s%4s\n","*Mon","Tue","Wed","Thu","Fri","Sat","Sun");
 
 
for(q=0;q<b-1;q++)
printf("%4s","");
 
 
for(j=0;j<x[i];j++)
{
   b++;
  printf("%4d",j+1);
   if(b==8)
   {b=1;
      printf("\n");
 
    }
 
 
 
}
if(b!=1)
printf("\n");
 
}
 
 
return 0;
}
  

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值