输出一年的时间段,先按月份输出,再按周数划分

文章讨论了如何准确计算一年中的周数,考虑到闰年的影响和不同月份的起始日期。通过示例展示了如何逐月计算2023年的每周范围,总计53周。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

前段时间遇到一个需求,需要记录一年的周数。初步想法,欸,不难啊,一年就那几周,直接遍历出来不就好啦!
可是仔细一想,其中的难点还是很多的:
确定一年有多少周确实是一个有点复杂的问题,因为一年的长度不是一个固定的值,而是根据不同的因素而变化的。
通常情况下,一年有52周。这是因为每个星期有7天,所以简单地将365天除以7得到52周余1天。
然而,这种计算方式忽略了闰年的存在。
闰年是为了解决日历与地球公转周期之间的不匹配问题而引入的。
闰年有366天,比平年多出一个日子。根据公历规则,闰年发生在能被4整除的年份,但不能被100整除,除非能被400整除。
因此,为了准确计算一年有多少周,我们需要考虑以下几个因素:
一:包含的闰年数量:在一年的时间跨度中,有多少闰年是不规则的,需要根据公历规则进行计算。
二:起始日期和结束日期:如果一个年份的开始或结束日期不是星期一,那么该年可能有一周多一天或一周少一天,因此需要考虑这样的情况。
综上所述,编写一个准确计算一年周数的程序可能会有一定的复杂性。需要考虑日期处理、闰年计算和日期推移等问题。


一、运行结果

经过一系列的推算,运行结果如下:

2023年1月有31天
时间段:2023-01-01 至 2023-01-31
第1个星期
范围是:2022-12-26----2023-01-01
第2个星期
范围是:2023-01-02----2023-01-08
第3个星期
范围是:2023-01-09----2023-01-15
第4个星期
范围是:2023-01-16----2023-01-22
第5个星期
范围是:2023-01-23----2023-01-29
第1个月:共计5星期
2023年2月有28天
时间段:2023-02-01 至 2023-02-28
第6个星期
范围是:2023-01-30----2023-02-05
第7个星期
范围是:2023-02-06----2023-02-12
第8个星期
范围是:2023-02-13----2023-02-19
第9个星期
范围是:2023-02-20----2023-02-26
第2个月:共计9星期
2023年3月有31天
时间段:2023-03-01 至 2023-03-31
第10个星期
范围是:2023-02-27----2023-03-05
第11个星期
范围是:2023-03-06----2023-03-12
第12个星期
范围是:2023-03-13----2023-03-19
第13个星期
范围是:2023-03-20----2023-03-26
第3个月:共计13星期
2023年4月有30天
时间段:2023-04-01 至 2023-04-30
第14个星期
范围是:2023-03-27----2023-04-02
第15个星期
范围是:2023-04-03----2023-04-09
第16个星期
范围是:2023-04-10----2023-04-16
第17个星期
范围是:2023-04-17----2023-04-23
第18个星期
范围是:2023-04-24----2023-04-30
第4个月:共计18星期
2023年5月有31天
时间段:2023-05-01 至 2023-05-31
第19个星期
范围是:2023-05-01----2023-05-07
第20个星期
范围是:2023-05-08----2023-05-14
第21个星期
范围是:2023-05-15----2023-05-21
第22个星期
范围是:2023-05-22----2023-05-28
第5个月:共计22星期
2023年6月有30天
时间段:2023-06-01 至 2023-06-30
第23个星期
范围是:2023-05-29----2023-06-04
第24个星期
范围是:2023-06-05----2023-06-11
第25个星期
范围是:2023-06-12----2023-06-18
第26个星期
范围是:2023-06-19----2023-06-25
第6个月:共计26星期
2023年7月有31天
时间段:2023-07-01 至 2023-07-31
第27个星期
范围是:2023-06-26----2023-07-02
第28个星期
范围是:2023-07-03----2023-07-09
第29个星期
范围是:2023-07-10----2023-07-16
第30个星期
范围是:2023-07-17----2023-07-23
第31个星期
范围是:2023-07-24----2023-07-30
第7个月:共计31星期
2023年8月有31天
时间段:2023-08-01 至 2023-08-31
第32个星期
范围是:2023-07-31----2023-08-06
第33个星期
范围是:2023-08-07----2023-08-13
第34个星期
范围是:2023-08-14----2023-08-20
第35个星期
范围是:2023-08-21----2023-08-27
第8个月:共计35星期
2023年9月有30天
时间段:2023-09-01 至 2023-09-30
第36个星期
范围是:2023-08-28----2023-09-03
第37个星期
范围是:2023-09-04----2023-09-10
第38个星期
范围是:2023-09-11----2023-09-17
第39个星期
范围是:2023-09-18----2023-09-24
第9个月:共计39星期
2023年10月有31天
时间段:2023-10-01 至 2023-10-31
第40个星期
范围是:2023-09-25----2023-10-01
第41个星期
范围是:2023-10-02----2023-10-08
第42个星期
范围是:2023-10-09----2023-10-15
第43个星期
范围是:2023-10-16----2023-10-22
第44个星期
范围是:2023-10-23----2023-10-29
第10个月:共计44星期
2023年11月有30天
时间段:2023-11-01 至 2023-11-30
第45个星期
范围是:2023-10-30----2023-11-05
第46个星期
范围是:2023-11-06----2023-11-12
第47个星期
范围是:2023-11-13----2023-11-19
第48个星期
范围是:2023-11-20----2023-11-26
第11个月:共计48星期
2023年12月有31天
时间段:2023-12-01 至 2023-12-31
第49个星期
范围是:2023-11-27----2023-12-03
第50个星期
范围是:2023-12-04----2023-12-10
第51个星期
范围是:2023-12-11----2023-12-17
第52个星期
范围是:2023-12-18----2023-12-24
第53个星期
范围是:2023-12-25----2023-12-31
第12个月:共计53星期

代码地址:

积分资源下载

总结

@作者:加辣椒了吗?
简介:憨批大学生一枚,喜欢在博客上记录自己的学习心得,也希望能够帮助到你们!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

加辣椒了吗?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值