最简单可靠的方法是用 datetime 模块的 timetuple().tm_yday 属性,直接获取年积日整数值;也可用 strftime('%j') 得到三位字符串形式。

Python 判断某一天是一年中的第几天,最简单可靠的方法是用 datetime 模块的 timetuple().tm_yday 属性,或者直接用 strftime('%j')。
timetuple().tm_yday 获取年积日这是最直观、推荐的方式。每个 date 或 datetime 对象调用 timetuple() 后,返回一个 time.struct_time,其中 tm_yday 就是该日期在当年的第几天(1~366)。
示例:
from datetime import date <p>d = date(2024, 3, 15) # 2024年3月15日 day_of_year = d.timetuple().tm_yday print(day_of_year) # 输出:75
strftime('%j') 格式化获取%j 是 strftime 的专用格式码,表示“一年中的第几天”,返回三位数字符串(如 '075'),适合需要字符串输出或对齐显示的场景。
立即学习“Python免费学习笔记(深入)”;
示例:
from datetime import datetime
<p>dt = datetime(2023, 12, 31)
day_str = dt.strftime('%j')
print(day_str) # 输出:'365'
print(int(day_str)) # 转为整数:365
如果不用标准库,可以按月份累加天数,注意闰年二月是29天。但容易出错,且重复造轮子。
关键逻辑包括:
[31, 28, 31, 30, ...]
year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)
如果原始数据是字符串(如 "2024-03-15"),先用 strptime 解析成日期对象再计算:
from datetime import datetime <p>s = "2024-03-15" d = datetime.strptime(s, "%Y-%m-%d") print(d.timetuple().tm_yday) # 75
基本上就这些。优先用 timetuple().tm_yday,简洁、准确、无需额外依赖。
以上就是python怎么判断某一天是一年中的第几天的详细内容,更多请关注php中文网其它相关文章!
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号