上大学时学编程,老师和教材都告诉我,闰年的判断有两个原则:

1)能被4正确,且不能被100整除,则是闰年;

2)能被400整除,则是闰年。

今年看了一个python闰年判断的代码,惊得下巴都掉地上了。代码如下:

year = int(input("Enter a year: "))# Display its status.
if year % 4 != 0 or (year % 100 == 0 and year > 1582 and year % 400 != 0):print(year, "is not a leap year.")
else:
print(year, "is a leap year.")

代码里面竟然出现了一个1582!赶紧网络搜索了下。

我们现在使用所谓公历,其前身是儒略历,由罗马共和国独裁官儒略·恺撒采纳埃及亚历山大的希腊数学家兼天文学家索西琴尼计算的历法。始于公元前46年,它是一种纯粹的太阳历。在儒略历当中,规定一年12个月,单数月为大月,31天;双数月为小月,30天。但这样一年就是366天,和实际观察差别较大,于是必须从某一个月去除1天。据传罗马时代2月处决死刑犯,为了体现统治者的仁慈,于是就从2月去除1天,这样2月就是29天。

儒略·恺撒的侄子屋大维于公元前27年继位,继位后他发现僧侣将凯撒“每隔3年一闰”理解成了“每3年一闰”,此时已经多闰3年。为拨乱反正,屋大维宣布公元前8年到公元后4年不再置闰。从公元后8年重新施行。为褒奖自己,屋大维便从2月中再拿出一天,加入到自己出生的8月,并顺次对调了后面的大小月;同时将八月改成了自己的奥古斯都皇帝(AugustusCaesar)的名字, 叫做August。

平均起来,儒略历每年是365.25天。但和现代观察一回归年大约是365.2422,这样到1582年,偏差已经达到了10天,严重的影响了当时的农业生产。当时的教皇格里高利十三世采用的一种简单粗暴的办法,直接把1582年10月5日至14日去除,以抹平误差。

为消除以后再出现此问题,每100年去掉1个闰年,但每400年当年依然是闰年。这样每400年天数为365.25×400-3=146097天,每年平均是146097/400=365.2425。非常接近当前天文观察,且处理方法较为简单,便固定下来。此历法即格里高利历,也就是现在所谓的公历。

python闰年判断 从儒略历到格里高利历 公历历史相关推荐

  1. 蓝桥杯Python—闰年判断

    目录 一.题目 二.举例 三.解析 四.代码 五.运行结果 一.题目 输入一个年份,判断该年是否是闰年 二.举例 输入:2023 输出:2023不是闰年 三.解析 方法一:如果该年的二月有29天则为闰 ...

  2. 格里高利历java_Java 日历笔记

    Calendar类 getFirstDayOfWeek public int getFirstDayOfWeek() 获取一星期的第一天:例如,在美国,这一天是 SUNDAY,而在法国,这一天是 MO ...

  3. 格里高利历java_java时间类简单总结

    java时间类(Data类) 1.Data类(没有考虑到国际化,好多方法已过时java.util.Data包中) 父类(是类不是接口含有直接子类3个):  日期格式为:年月日时分秒(不包含毫秒部分) ...

  4. python基础-闰年判断

    一.问题描述 使用python编写一个程序,检查任意一个年份是否是闰年. 闰年判断条件: 如果一个年份可以被4整除不能被100整除,或者可以被400整除,这个年份就是闰年,否则是平年 逻辑语句: #y ...

  5. python代码判断指定日期是当前年的第多少天

    python代码判断指定日期是当前年的第多少天 #python代码判断指定日期是当前年的第多少天 #不适用标准库 def is_leap_year(year):"""判断 ...

  6. python闰年统计_利用Python写一个闰年计算器和每月天数计算器

    闰年计算器 题目:输入年份,判断该年是否为闰年. 方法:1.能被400整除的年份 2.能被4整除,但不能被100整除 1 print('---闰年判断器kql,按q退出---') 2 while Tr ...

  7. 任务2、闰年判断,计算圆面积

    文章目录 任务二.闰年判断 1.编程实现 任务二.计算圆面积(选择结构版) 任务二.闰年判断 什么是闰年?有两种情况:能被4整除但是不能被100整除:能被400整除 解决闰年判断问题,涉及三种运算:算 ...

  8. python怎样判断一个文件是否存在_python如何判断一个文件是否存在

    python如何判断一个文件是否存在 发布时间:2020-09-23 11:38:42 来源:亿速云 阅读:82 作者:Leah python如何判断一个文件是否存在?针对这个问题,这篇文章详细介绍了 ...

  9. python中函数和方法的区别?Python编程判断当前获取的对象是函数还是方法

    python中函数和方法的区别?Python编程判断当前获取的对象是函数还是方法 目录

最新文章

  1. iOS中的动力学:Dynamics【1】
  2. Love = Accounting
  3. 开源内容管理系统 php mysql_「分享」7 个精致的 PHP 开源内容管理系统(CMS)
  4. linux程序莫名异常怎么查
  5. c++基础学习(08)--(继承、重载、多态、虚函数)
  6. c++ python opencv_从C++到Python的OpenCV垫
  7. Python调用API接口的几种方式
  8. matlab状态方程 传递函数 可控性,matlab 控制系统仿真
  9. 预科阶段:快速实战入门
  10. 帝国cms插件-百度收录api模式插件
  11. win10无线网卡黄色感叹号
  12. css transition opacity,CSS transition属性
  13. ubuntu 下使用 Python 和 SL4A 的 Android 应用程序构建您自己的android开发环境
  14. C语言实现英寸单位与厘米的转换(两种方法)特简单!!!
  15. php 母版页,.NET_ASP.NET 2.0 中的创建母版页,  虽然母版页和内容页功能 - phpStudy...
  16. 工业机器人组成结构【拆卸 / 组装 KUKA 工业机器人】
  17. matplotlib 不显示图像或者图像只能在弹出层显示
  18. OSChina 周三乱弹 —— 啪啪啪是敲键盘的声音
  19. GOROOT 和 GOPATH 的区别
  20. 基于Unity的软光栅实现(3):基于Job system的多核加速光栅化

热门文章

  1. 串口配置c语言,C语言驱动之配置串口(基于S3C2440开发板)
  2. 疫情之后,SaaS的春天就来了吗?
  3. [前端框架]-VUE(上篇)
  4. Scratch学习:如何把角色设置成半透明?
  5. 电子技术中的偏置的含义
  6. JavaScript高级程序设计(第4版)学习随笔【第八章】
  7. 批量清空数码照片中的相机设备型号、镜头型号、相机快门次数等拍摄数据
  8. 控制与计算机工程国际学术会议,第四届机械、控制与计算机工程国际学术会议ICMCCE2019...
  9. veket linux应用软件,veket linux下载
  10. Idea生成英文JavaDoc以及中文编码问题