[本文出自天外归云的博客园]
题目:通过年月日,计算是当年的第几天
解法如下:
#!/usr/bin/python
from datetime import datetime
import time
# 方法一: 利用库函数
def ret_day_1(year, month, day):
d = datetime(year=year, month=month, day=day)
return d.timetuple().tm_yday
# 方法二:利用时间戳差值
def ret_day_2(year, month, day):
s_date = f"{year-1}-12-31"
c_date = f"{year}-{month}-{day}"
st = int(time.mktime(datetime.strptime(s_date, "%Y-%m-%d").timetuple()))
ct = int(time.mktime(datetime.strptime(c_date, "%Y-%m-%d").timetuple()))
duration = ct - st
return int(duration / 60 / 60 / 24)
# 方法三:利用闰年计算公式
def ret_day_3(year, month, day):
m_day = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
# 闰年二月29天,全年366天
m_day[2] = 29
days = 0
for i in range(month):
days += m_day[i]
days += day
return days
r1 = ret_day_1(2022, 6, 30)
r2 = ret_day_2(2022, 6, 30)
r3 = ret_day_3(2022, 6, 30)
print(r1, r2, r3)
Original: https://www.cnblogs.com/LanTianYou/p/16448385.html
Author: 天外归云
Title: Python通过年月日计算是当年的第几天
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/15735/
转载文章受原作者版权保护。转载请注明原作者出处!