Python 3日期差值计算:如何仅保留天数去除时间部分?
解决Python计算日期差仅输出纯天数的问题
嗨,这个问题很好解决~你当前代码里Now - StartDate得到的是一个timedelta对象,它包含了完整的时间差信息(天数+时分秒),而我们只需要提取其中的days属性就能得到纯数字的天数啦。
修改后的代码
直接在计算结果后面加上.days即可:
from datetime import datetime Now = datetime.now() StartDate = datetime.strptime(str(Now.year) +'-01-01', '%Y-%m-%d') NumberOfDays = (Now - StartDate).days # 关键:访问timedelta的days属性 print(NumberOfDays)
运行这段代码就会直接输出类似78这样的纯整数天数,完全符合你的需求。
额外小提示:更严谨的日期差计算
如果你想完全忽略当天的时间部分(比如不管现在是几点,都只按完整日期计算差),可以把两个时间都转换成date对象再做减法,结果是一样的,但逻辑上更聚焦于日期本身:
from datetime import datetime now_date = datetime.now().date() start_date = datetime.strptime(f"{now_date.year}-01-01", "%Y-%m-%d").date() day_count = (now_date - start_date).days print(day_count)
这里用了f-string来拼接年份字符串,比字符串相加更简洁哦~
内容的提问来源于stack exchange,提问作者iii
相关产品推荐
相关产品推荐

