Python自定义函数计算指定日期为当年第几天的实现

Aria
Aria
发布时间:2026-10-13 | 2人浏览过
原创

本文介绍如何使用Python自定义函数计算给定日期是该年的第几天。核心逻辑在于判断闰年:能被4整除但不能被100整除,或能被400整除的年份为闰年。代码通过累加前几个月的天数并加上当前日期得出结果,同时提供了相关在线工具推荐。

Python计算日期是第几天的实现方法

本文分享一个Python示例,展示如何编写自定义函数来计算指定日期在当年中的序数天数。

主要任务是创建一个函数,接收年、月、日参数,返回该日期是这一年的第几天。

闰年的判断条件

判断闰年的核心条件如下:

  • 闰年是公历中的概念,指能被4整除但不能被100整除的年份,或者能被400整除的年份。
  • 闰年(Leap Year)是为了修正人为历法与地球实际公转周期之间的时间差而设立的。闰年共有366天,各月份天数分别为:1月31天,2月29天,3月31天,4月30天,5月31天,6月30天,7月31天,8月31天,9月30天,10月31天,11月30天,12月31天。
  • 凡阳历中包含闰日(即2月29日)的年份称为闰年;此外还有“闰余”概念,指阴历每年与回归年相差的时间置闰。需注意,公历中的“闰年”与农历中的“闰月”无直接关联。公历仅分平年(365天)和闰年(366天,2月多一天);平年中也可能出现农历闰月(例如2017年是平年,但农历有闰6月)。

具体实现代码如下:

Python代码实现


#coding=utf-8
#写一个函数,计算给定日期是该年的第几天.
def count(year,month,day):
 count = 0
 #判断该年是平年还是闰年
 if year%400==0 or (year%4==0 and year%100!=0):
  print('%d年是闰年,2月份有29天!'%year)
  li1 = [31,29,31,30,31,30,31,31,30,31,30,31]
  for i in range(month-1):
   count += li1[i]
  return count+day
 else:
  print('%d年是平年,2月份有29天!' % year)
  li2 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
  for i in range(month-1):
   count +=li2[i]
  return count+day
if __name__ == "__main__":
 year = int(input('请输入年份:'))
 month = int(input('请输入月份:'))
 day = int(input('请输入日期:'))
 count = count(year,month,day)
 print('%d年%d月%d日是今年的第%d天!'%(year,month,day,count))

运行结果示例

程序运行输出示例如下:

请输入年份:2017 请输入月份:8 请输入日期:17 2017年8月17日是今年的第229天!

相关在线工具推荐

此外,推荐几款常用的日期与天数计算在线工具供参考:

在线日期/天数计算器: http://tools.jb51.net/jisuanqi/date_jisuanqi

在线万年历日历: http://tools.jb51.net/bianmin/wannianli

在线阴历/阳历转换工具: http://tools.jb51.net/bianmin/yinli2yangli

Unix时间戳(timestamp)转换工具: http://tools.jb51.net/code/unixtime

如需了解更多Python相关知识,可参考本站专题:《Python日期与时间操作技巧总结》、《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》。

希望上述内容能对您的Python编程学习有所帮助。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表