c语言星期源代码,计算任何一天是星期几的C语言源代码.-世界报道
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我们知道,公历的平年是365天,闰年是366天。置闰的方法是能被4整除的年份在2月加一天,但能被100整除的不闰,能被400整除的又闰。因此,像1600、2000、2400年都是闰年,而1700、1800、1900、2100年都是平年。公元前1年,按公历也是闰年。
(资料图片仅供参考)
因此,对于从公元前1年(或公元0年)12月31日到某一日子的年份Y之间的所有整年中的闰年数,就等于
[(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400],
[...]表示只取整数部分。第一项表示需要加上被4整除的年份数,第二项表示需要去掉被100整除的年份数,第三项表示需要再加上被400整除的年份数。之所以Y要减一,这样,我们就得到了第一个计算某一天是星期几的公式:
W = (Y-1)*365 + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D. (1)
其中D是这个日子在这一年中的累积天数。算出来的W就是公元前1年(或公元0年)12月31日到这一天之间的间隔日数。把W用7除,余数是几,这一天就是星期几。比如我们来算2004年5月1日:
W = (2004-1)*365 + [(2004-1)/4] - [(2004-1)/100] + [(2004-1)/400] +31+29+31+30+1)
= 731702,
731702 / 7 = 104528……6,余数为六,说明这一天是星期六。这和事实是符合的。
上面的公式(1)虽然很准确,但是计算出来的数字太大了,使用起来很不方便。仔细想想,其实这个间隔天数W的用处仅仅是为了得到它除以7之后的余数。这启发我们是不是可以简化这个W值,只要找一个和它余数相同的较小的数来代替,用数论上的术语来说,就是找一个和它同余的较小的正整数,照样可以计算出准确的星期数。
显然,W这么大的原因是因为公式中的第一项(Y-1)*365太大了。其实,
(Y-1)*365 = (Y-1) * (364+1)
= (Y-1) * (7*52+1)
= 52 * (Y-1) * 7 + (Y-1),
这个结果的第一项是一个7的倍数,除以7余数为0,因此(Y-1)*365除以7的余数其实就等于Y-1除以7的余数。这个关系可以表示为:
(Y-1)*365 ≡ Y-1 (mod 7).
其中,≡是数论中表示同余的符号,mod 7的意思是指在用7作模数(也就是除数)的情况下≡号两边的数是同余的。因此,完全可以用(Y-1)代替(Y-1)*365,这样我们就得到了那个著名的、也是最常见到的计算星期几的公式:
W = (Y-1) + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D. (2)
这个公式虽然好用多了,但还不是最好用的公式,因为累积天数D的计算也比较麻烦。是不是可以用月份数和日期直接计算呢?答案也是肯定的。我们不妨来观察一下各个月的日数,列表如下:
月 份:1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
--------------------------------------------------------------------------
天 数: 31 28(29) 31 30 31 30 31 31 30 31 30 31
如果把这个天数都减去28(=4*7),不影响W除以7的余数值。这样我们就得到另一张表:
月 份:1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
------------------------------------------------------------------------
剩余天数: 3 0(1) 3 2 3 2 3 3 2 3 2 3
平年累积: 3 3 6 8 11 13 16 19 21 24 26 29
闰年累积: 3 4 7 9 12 14 17 20 22 25 27 30
仔细观察的话,我们会发现除去1月和2月,3月到7月这五个月的剩余天数值是3,2,3,2,3;8月到12月这五个月的天数值也是3,2,3,2,3,正好是一个重复。相应的累积天数中,后一月的累积天数和前一月的累积天数之差减去28就是这个重复。正是因为这种规律的存在,平年和闰年的累积天数可以用数学公式很方便地表达:
╭ d; (当M=1)
D = { 31 + d; (当M=2) (3)
╰ [ 13 * (M+1) / 5 ] - 7 + (M-1) * 28 + d + i. (当M≥3)
其中[...]仍表示只取整数部分;M和d分别是想算的日子的月份和日数;平年i=0,闰年=1。对于M≥3的表达式需要说明一下:[13*(M+1)/5]-7算出来的就是上面第二个表中的平年累积值,再加上(M-1)*28就是想算的日子的月份之前的所有月份的总天数。这是一个很巧妙的办法,利用取整运算来实现3,2,3,2,3的循环。比如,对2004年5月1日,有:
标签:
相关推荐:
最新新闻:
- 全球今热点:华为鸿蒙能代替安卓吗?华为鸿蒙2.0优势在哪?
- 每日短讯:如何判断自己的QQ是否存在异常?登录记录查询法
- c语言星期源代码,计算任何一天是星期几的C语言源代码.-世界报道
- 液晶电视机使用的高清线是什么?HDMI1.4版禁止使用版本号标识方法
- ZGC收集器是什么?ZGC收集器是如何工作?
- 消息!如何用格式工厂转换MPG格式?格式工厂(FormatFactory)转换视频教程
- 苹果录屏会把外界声音录进去吗?苹果手机在录屏时开启录音功能
- 如何防止别人使用u盘拷贝电脑中的重要数据?防止u盘拷贝电脑数据方法_环球资讯
- 巧克力键盘怎么安装?巧克力键盘安装方法 世界百事通
- 什么是PLC触摸屏一体机?PLC触摸屏一体机有什么用处?
- 剑灵首饰怎么喂养?1-45级首饰喂养攻略
- 【数据之美】pandas的时间日期高效操作探索
- 专业音箱分频器如何使用?专业音箱分频器使用方法
- 4k分辨率是多少?真4k与假4k区别介绍_天天讯息
- 世界即时看!Maven默认的仓库位置在哪里?Maven默认仓库改成自己的仓库步鄹的方法
- java内存模型——volatile的可见性 世界速递
- Zip格式结构图总览 Zip文件结构详解
- 视频文件有哪些格式?视频文件的格式介绍-全球动态
- 天天要闻:什么是root权限?root权限有什么用?
- 热门看点:商标注册查询入口官网在哪里?商标注册查询入口官网地址及查询方法
- 每日消息!nix系统上加载/管理模块的命令 linux常用命令之module
- torrentkitty打不开怎么办?torrentkitty打不开的解决办法 全球播资讯
- 孕妇能用取暖器吗?取暖器对孕妇有影响吗?:精选
- 适合中老年人使用的手机推荐:华为G5000、海尔A60上榜
- 众多索尼psp系列产品中 哪款最值得购买?
- mysql-uroot-p命令怎么下载?MySQL数据库安装教程_世界即时看
- 行式数据库系统中的列式存储——Clickhouse-世界热讯
- 表空间用户SQLoracle有啥子优势?详情介绍
- 环球新资讯:最新的笔记本电脑品牌排行榜:苹果、联想、索尼、惠普上榜
- 抖音怎么涨粉?运营抖音号的小技巧
- 《碟中谍7:致命清算》海报曝光 阿汤哥再次挑战极限_世界快看
- 支付宝可以绑定银行卡吗?余额宝转入转出的方法是什么?_世界热文
- 天天最新:《街头霸王6》开发者实机演示 “桑吉尔夫 Vs 玛丽莎”
- 今日快讯:Nokia3208c到底是一款什么样的手机?诺基亚Nokia3208c的性能如何?
- 什么是BT?BT、FTP、PUB的下载方式有哪些?
- 天天观点:java中BigDecimal的4个造方法 你知道吗?
- 环球微速讯:在阿里巴巴图标库创建自己的工程 并导入第三方图标
- 今日快看!CST怎么用?CST使用心得及使用方法
- word文档中的大括号怎么打?六角括号怎么用键盘打?
- 全球快看:《速度与激情10》新海报发布 终途启程家人一直在身边
- 环球头条:小电风扇的优点都有哪些?小电风扇优点介绍
- 昆汀准备拍他“最后一部”电影了!今秋开机
- 鱼骨图绘制有什么技巧?3种类型的鱼骨图制作思维导图示例
- 《极乐迪斯科》开发商法律纠纷结束:主创还清欠款-环球新消息
- 全球观天下!PDF怎么编辑?PDF编辑方法大全
- TCP协议详解 一文读懂TCP协议段格式|每日热闻
- cr2是什么格式?CR2格式打开的方法步骤是什么?
- 世界观热点:【科普】什么是NAS?有什么好玩的功能?
- Cydia源是什么?Cydia源添加安装及更新步骤
- UAC功能是什么?关闭UAC功能的操作过程
- win10系统怎么使用eZ Flash3刷BIOS?使用EZ Flash3刷BIOS步骤
- win10系统临时文件夹在哪?查找临时文件夹的步骤
- 如何输入avast注册码?avast软件介绍及激活码分享
- LanHelper工具有什么功能?LanHelper工具破解教程
- 笔记本内存条怎么安装?笔记本加内存条安装方法
- 注册表数据怎样进行修改?注册表编辑器打不开有什么解决办法?
- 出现0xc0000005错误是由什么原因造成的?c0000005异常代码解决方法
- Word中省略号怎么打?Word中省略号快捷键
- 耳机有杂音是什么原因造成的?耳机插上还是外放应该怎么办?
- 电脑时间不同步怎么办?电脑时间不同步的解决方法
- 硅谷银行储户排长队取款:中国一公司已取回6亿元
- 环球焦点!三人被困雪地 男子用iPhone和大疆无人机成功自救
- 《暗黑破坏神4》终极版预告 6月6日正式发售
- 苹果MR头显6月见!
- 郝旭蕾判刑_郝旭蕾
- 天天热消息:外媒:《哥谭骑士》优化大幅度改进 卡顿完全没有了
- 全球球精选!雷克萨斯推出电动SUV RZ450E
- 恐怖加倍!《生化4RE》试玩好评如潮 等不及要玩正式版啦
- 监管兜底 硅谷银行倒闭存款安全
- 【独家焦点】支持100W和8K60Hz 凯宠TypeC线24.45元
- 壶中日月方寸乾坤 磐镭全新系列显卡即将发布
- 滚动:《地球防卫军6》首个大型DLC确定3月23日发售
- 索尼为视力障碍人群发布数码相机-环球关注
- 全球焦点!星链打电话!SpaceX准备测试这一业务
- 环球最资讯丨视频神器 LG16:18显示器4099元