c语言代码输入年月出星期几,任意年月日历输出-题解(C语言代码)

本题目主要解决如下几个问题:

**1、该月的1号是星期几;

2、该月份有几天;

3、2月份天数的特殊处理;

4、输出格式问题。**

我们来一次解决如上问题:

###### 问题1:该月的1号是星期几

我们知道星期几是以7天作为循环周期的,我们分别用**0~6**这几个数字,分别代表星期天到星期六。

![](/image_editor_upload/20191003101309_54683.jpg)

为此我们可以用**余数**的方法来求得第k天后是星期几。

我们先用简单的来计算一下,现已知**今天是星期天**,第k天后是星期几,我们可以观察下图,得出一个规律:第k天后是星期**k%7**(如果是0代表星期天)

![](/image_editor_upload/20191003103259_89072.jpg)

题目给的已知条件是星期一,现要求第k天是星期几,这里的k是2007/1/1到所要求的XXXX年XX月1日的总天数,为此我们得到

第k天后是星期**(k-(7-1))%7**,这里的1是指星期一所对应序号1,因为我们是从星期一开始计算的,而减去(7-1)是为了把初始值变成星期天,方便计算。

通过余数的计算我们把(k-(7-1))%7化简一下:

( k - (7-1))%7

=( k - 7 + 1 )%7

=( k%7 - 7%7 + 1%7 )%7

=**( k%7 + 1)%7**

(只要知道总天数,代入该式就可求出XX

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值