【教学类-48-03】202402011“闰年”(每4年一次 2月有29日)世纪年必须整除400才是闰年)
2000-2099年之间的闰年有25次,
背景需求:
已经制作了对称年月的数字提取,和年月日相等的年份提取
【教学类-48-01】20240205对称的“年”和“月日”(如2030 0302)-CSDN博客文章浏览阅读84次。【教学类-48-01】20240205对称的“年”和“月日”(如2030 0302)https://blog.csdn.net/reasonsummer/article/details/136062477
https://blog.csdn.net/reasonsummer/article/details/136062477
【教学类-48-02】20240207“年”和“月”和“日”相等(如2012 1212)-CSDN博客文章浏览阅读834次,点赞25次,收藏22次。【教学类-48-02】20240207“年”和“月”和“日”相等(如2012 1212)
https://blog.csdn.net/reasonsummer/article/details/136064823?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22136064823%22%2C%22source%22%3A%22reasonsummer%22%7D
修改代码,提取所有闰年(有2月29日的年,就是闰年)——今年龙年2024年就有2月29日。
参考代码
python 获取指定范围所有日期_python获取一段时间的所有日期对象-CSDN博客文章浏览阅读680次。python 获取指定范围所有日期方法有很多,这不是唯一的答案。可以根据自己的需要进行修改,代码如下:import datetimedef gen_dates(b_date, days): day = datetime.timedelta(days=1) for i in range(days): yield b_date + day * idef get_date_list(start=None, end=None): if start is Non_python获取一段时间的所有日期对象https://blog.csdn.net/love_521_/article/details/113983984?spm=1001.2101.3001.6650.4&utm_medium=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~Rate-4-113983984-blog-110731910.235%5Ev43%5Epc_blog_bottom_relevance_base6&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~Rate-4-113983984-blog-110731910.235%5Ev43%5Epc_blog_bottom_relevance_base6&utm_relevant_index=9
https://blog.csdn.net/love_521_/article/details/113983984?spm=1001.2101.3001.6650.4&utm_medium=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~Rate-4-113983984-blog-110731910.235%5Ev43%5Epc_blog_bottom_relevance_base6&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~Rate-4-113983984-blog-110731910.235%5Ev43%5Epc_blog_bottom_relevance_base6&utm_relevant_index=9
重点说明:

代码展示
'''
2900-2100年之间提取闰年
作者:阿夏
日期:2024年2月11日
'''# https://blog.csdn.net/love_521_/article/details/113983984?spm=1001.2101.3001.6650.4&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-4-113983984-blog-110731910.235%5Ev43%5Epc_blog_bottom_relevance_base6&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-4-113983984-blog-110731910.235%5Ev43%5Epc_blog_bottom_relevance_base6&utm_relevant_index=9
import datetimedef gen_dates(b_date, days):day = datetime.timedelta(days=1)for i in range(days):yield b_date + day * idef get_date_list(start=None, end=None):if start is None:start = datetime.datetime.strptime('20180202', '%Y%m%d')else:start = datetime.datetime.strptime(start, '%Y%m%d')if end is None:# end = datetime.datetime.now()end = datetime.datetime.strptime('20280202', '%Y%m%d')else:end = datetime.datetime.strptime(end, '%Y%m%d')data = []for d in gen_dates(start, (end -start).days):m = datetime.datetime.strftime(d, '%Y%m%d')data.append(m) # 如果你想添加的为日期类型 m改为 d即可print(data, data.__len__(), sep='\n')t=[]# 遍历for x in range(len(data)):b=data[x][0:2]# 提取“年”前2个数字 20240229的20y=data[x][2:4]# 提取“年”后2个数字 20240229的24m=data[x][4:6]# 提取“月”2个数字 20240229的02d=data[x][6:8]# 提取“日”2个数字 20240229的29if m=='02'and d=='29': # 如果2月有29天a=b+y# 合并年月日print('符合闰年的年份',a,'年')t.append(a)print('符合闰年的年份有',len(t),'次')print('符合闰年的年份列表',t)# 起始日期
get_date_list(start='10000101', end='99991231')
# get_date_list(start='20000101', end='20991231')
# 40541# 符合闰年的年份 2000 年
# 符合闰年的年份 2004 年
# 符合闰年的年份 2008 年
# 符合闰年的年份 2012 年
# 符合闰年的年份 2016 年
# 符合闰年的年份 2020 年
# 符合闰年的年份 2024 年
# 符合闰年的年份 2028 年
# 符合闰年的年份 2032 年
# 符合闰年的年份 2036 年
# 符合闰年的年份 2040 年
# 符合闰年的年份 2044 年
# 符合闰年的年份 2048 年
# 符合闰年的年份 2052 年
# 符合闰年的年份 2056 年
# 符合闰年的年份 2060 年
# 符合闰年的年份 2064 年
# 符合闰年的年份 2068 年
# 符合闰年的年份 2072 年
# 符合闰年的年份 2076 年
# 符合闰年的年份 2080 年
# 符合闰年的年份 2084 年
# 符合闰年的年份 2088 年
# 符合闰年的年份 2092 年
# 符合闰年的年份 2096 年
# 符合闰年的年份有 25 次
# 符合闰年的年份列表 ['2000', '2004', '2008', '2012', '2016', '2020', '2024', '2028', '2032', '2036', '2040', '2044', '2048', '2052', '2056', '2060', '2064', '2068', '2072', '2076', '2080', '2084', '2088', '2092', '2096']
结果:
符合闰年的年份 2000 年
符合闰年的年份 2004 年
符合闰年的年份 2008 年
符合闰年的年份 2012 年
符合闰年的年份 2016 年
符合闰年的年份 2020 年
符合闰年的年份 2024 年
符合闰年的年份 2028 年
符合闰年的年份 2032 年
符合闰年的年份 2036 年
符合闰年的年份 2040 年
符合闰年的年份 2044 年
符合闰年的年份 2048 年
符合闰年的年份 2052 年
符合闰年的年份 2056 年
符合闰年的年份 2060 年
符合闰年的年份 2064 年
符合闰年的年份 2068 年
符合闰年的年份 2072 年
符合闰年的年份 2076 年
符合闰年的年份 2080 年
符合闰年的年份 2084 年
符合闰年的年份 2088 年
符合闰年的年份 2092 年
符合闰年的年份 2096 年
符合闰年的年份有 25 次
根据以上数字判断:
1、100年里有25次闰年?
根据以上数字判断:从00开始反复加4年,直到96,(最大数字是99)一共25次。
00、04、08、12……92,96
那么公元1000年到公元9999年的“闰年”日期可能的数量
(9999-1000+1)*25/100=2250年(一百年里25次闰年)
2、并非所有的XX00年都是闰年
可是结果不是2250,而是2182,少了68年

查询网络才知道


也就是说:跨世纪的“XX00年”必须能被400整除才算闰年。下图显示1000 年/400=2.5、3000年/400=7.5不是闰年(红色表示缺失),但2000年/400=5可以整除,就是闰年(绿色)
因此我有写了一个年份代码,测试68次缺少的分别是那些“世纪年”
'''
2900-2100年之间提取闰年,世纪年XX00不是闰年
作者:阿夏
日期:2024年2月11日
'''
start=1000
end=9999# 遍历所有年份
t=[]
for y in range(start,end+1):t.append(str(y))
# print(t)oy=[]# 平年
ly=[]# 闰年
for x in t:if x[2:4]=='00': # # print(x)num=int(x)/400if num==int(num):num=int(num)ly.append(x)# print(num)# print('闰年')else:num=float(num)# print(num)# print('非闰年')oy.append(x)else:passprint('不符合闰年的世纪年(平年)有',len(oy),'次')
print('不符合闰年的世纪年(平年)列表',oy)print('符合闰年的世纪年(闰年)有',len(ly),'次')
print('符合闰年的世纪年(闰年)列表',ly)
结果显示,公元1000-公元9999,一共是90个百年,一共有90次XX00年,其中22个世纪整年是闰年,可以被400整除,如1200、1600、2000年等,还有68个世纪整年是平年,如1000、4600、8100等。答案正确。

不符合闰年的世纪年(平年)有 68 次
不符合闰年的世纪年(平年)列表 ['1000', '1100', '1300', '1400', '1500', '1700', '1800', '1900', '2100', '2200', '2300', '2500', '2600', '2700', '2900', '3000', '3100', '3300', '3400', '3500', '3700', '3800', '3900', '4100', '4200', '4300', '4500', '4600', '4700', '4900', '5000', '5100', '5300', '5400', '5500', '5700', '5800', '5900', '6100', '6200', '6300', '6500', '6600', '6700', '6900', '7000', '7100', '7300', '7400', '7500', '7700', '7800', '7900', '8100', '8200', '8300', '8500', '8600', '8700', '8900', '9000', '9100', '9300', '9400', '9500', '9700', '9800', '9900']
符合闰年的世纪年(闰年)有 22 次
符合闰年的世纪年(闰年)列表 ['1200', '1600', '2000', '2400', '2800', '3200', '3600', '4000', '4400', '4800', '5200', '5600', '6000', '6400', '6800', '7200', '7600', '8000', '8400', '8800', '9200', '9600']
相关文章:
【教学类-48-03】202402011“闰年”(每4年一次 2月有29日)世纪年必须整除400才是闰年)
2000-2099年之间的闰年有25次, 背景需求: 已经制作了对称年月的数字提取,和年月日相等的年份提取 【教学类-48-01】20240205对称的“年”和“月日”(如2030 0302)-CSDN博客文章浏览阅读84次。【教学类-48-01】202402…...
如何开发一个属于自己的人工智能语言大模型?
要开发一个属于自己的人工智能语言模型,你需要遵循以下步骤: 数据收集:首先你需要大量的文本数据来训练你的模型。这些数据可以来自于各种来源,例如书籍、网站、新闻文章等。你需要确保这些数据足够多样化,以便模型能学…...
【HTTP】localhost和127.0.0.1的区别是什么?
目录 localhost是什么呢? 从域名到程序 localhost和127.0.0.1的区别是什么? 域名的等级划分 多网站共用一个IP和端口 私有IP地址 IPv6 今天在网上逛的时候看到一个问题,没想到大家讨论的很热烈,就是标题中这个: …...
Edge浏览器-常用快捷键
按键组合作用Ctrl Shift I开发人员工具Ctrl E定位到 空地址栏Ctrl L定位到 地址栏Ctrl Shift B显示或隐藏 收藏夹栏Ctrl Shift O打开收藏夹(搜索)Ctrl T打开一个新标签页Ctrl W关闭当前标签页Ctrl Shift T重新打开刚才关闭的标签页Ctrl Tab切换到下一个标签页Ctrl…...
C++:Vector动态数组的copy深入理解
动态数组分配的大小默认为2的n次方1,2,4,8... 在main中创建的vertices,push需要放到Vertex中(copy),下一次copy是因为要调整vertices的大小 vertices.push_back(Vertex(1,2,3));//拷贝 第一次&a…...
【PyTorch】PyTorch中张量(Tensor)切片操作
PyTorch深度学习总结 第三章 PyTorch中张量(Tensor)切片操作 文章目录 PyTorch深度学习总结一、前言二、获取张量中的元素1、切片(行、列数)方法2、torch.where()函数3、使元素置零的操作 一、前言 上文介绍了PyTorch中改变张量(Tensor)形状的操作&…...
GeoServer 2.11.1升级解决Eclipse Jetty 的一系列安全漏洞问题
Eclipse Jetty 资源管理错误漏洞(CVE-2021-28165) Eclipse Jetty HTTP请求走私漏洞(CVE-2017-7656) Eclipse Jetty HTTP请求走私漏洞(CVE-2017-7657) Eclipse Jetty HTTP请求走私漏洞(CVE-2017-7658) Jetty 信息泄露漏洞(CVE-2017-9735) Eclipse Jetty 安全漏洞(CVE-2022-20…...
【蓝桥杯选拔赛真题34】C++最大值 第十三届蓝桥杯青少年创意编程大赛C++编程选拔赛真题解析
目录 C/C++最大值 一、题目要求 1、编程实现 2、输入输出...
STM32之USART
概述 串口通信,通用异步收发传输器(Universal Asynchronous Receiver/Transmitter ),简称UART;而USART(Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步收发传输器。 USAR…...
unity 点击事件
目录 点击按钮,显示图片功能教程 第1步添加ui button,添加ui RawImage 第2步 添加脚本: 第3步,把脚本拖拽到button,点击button,设置脚本的变量, GameObject添加 Component组件 点击按钮&am…...
idea自带的HttpClient使用
1. 全局变量配置 {"local":{"baseUrl": "http://localhost:9001/"},"test": {"baseUrl": "http://localhost:9002/"} }2. 登录并将结果设置到全局变量 PostMapping("/login")public JSONObject login(H…...
vue3-应用规模化-路由和状态
客户端 vs. 服务端路由 服务端路由指的是服务器根据用户访问的 URL 路径返回不同的响应结果。当我们在一个传统的服务端渲染的 web 应用中点击一个链接时,浏览器会从服务端获得全新的 HTML,然后重新加载整个页面。 然而,在单页面应用中&…...
网络安全检查表
《网络攻击检查表》 1.应用安全漏洞 2.弱口令,默认口令 3.服务器互联网暴露 4.操作系统,中间件安全漏洞 5.研发服务器,邮件服务器等安全检查...
SSM框架,Maven的学习(下)
依赖传递和依赖冲突 依赖传递指的是当一个模块或库 A 依赖于另一个模块或库 B,而 B 又依赖于模块或库 C,那么 A 会间接依赖于 C。这种依赖传递结构可以形成一个依赖树。当我们引入一个库或框架时,构建工具(如 Maven、Gradle&…...
Vivado开发FPGA使用流程、教程 verilog(建立工程、编译文件到最终烧录的全流程)
目录 一、概述 二、工程创建 三、添加设计文件并编译 四、线上仿真 五、布局布线 六、生成比特流文件 七、烧录 一、概述 vivado开发FPGA流程分为创建工程、添加设计文件、编译、线上仿真、布局布线(添加约束文件)、生成比特流文件、烧录等步骤&a…...
C语言之动态内存管理
目录 1. 为什么要有动态内存分配2. malloc和freemallocfree 3. calloc和realloccallocrealloc 4. 常见的动态内存的错误对NULL直接的解引用操作对动态开辟空间的越界访问对非动态开辟内存使用free释放使用free释放一块动态开辟内存的一部分对同一块动态内存多次释放动态开辟内存…...
【AIGC风格prompt深度指南】掌握绘画风格关键词,实现艺术模仿的革新实践
[小提琴家]ASCII风格,点,爆炸,光,射线,计算机代码 由冰和水制成的和平标志]非常详细,寒冷,冰冻,大气,照片逼真,流动,16K 胡迪尼模拟火和水&#x…...
Qt安装配置教程windows版(包括:Qt5.8.0版本,Qt5.12,Qt5.14版本下载安装教程)(亲测可行)
目录 Qt5.8.0版本安装教程Qt5.8.0版本下载安装 Qt5.12.2版本安装教程下载安装 Qt 5.14.2安装教程下载安装和创建项目 参考视频 QT为嵌入式系统提供了大量的库和可重用组件。 WPS Office,咪咕音乐,Linux桌面环境等都是QT开发的。 Qt5.8.0版本安装教程 Q…...
SpringCloud-Ribbon实现负载均衡
在微服务架构中,负载均衡是一项关键的技术,它可以确保各个服务节点间的负载分布均匀,提高整个系统的稳定性和性能。Spring Cloud 中的 Ribbon 就是一种负载均衡的解决方案,本文将深入探讨 Ribbon 的原理和在微服务中的应用。 一、…...
Qt网络编程-TCP与UDP
网络基础 TCP与UDP基础 关于TCP与UDP的基础这里就不过多介绍了,具体可以查看对应百度百科介绍: TCP(传输控制协议)_百度百科 (baidu.com) UDP_百度百科 (baidu.com) 需要知道这两者的区别: 可靠性: TC…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...


