我有一個 python 程式,它以以下格式將一年中的一周作為輸入:YYYY-W#該程式使用此輸入生成一周中每一天的值并將資料輸出到 excel 檔案。
我收到錯誤:ValueError: day is out of range for month我意識到當一周中的幾天在不同的月份時我會收到這個錯誤(例如,星期一、星期二是 11 月,星期三、星期四等是 12 月)。
以下代碼是我如何獲取一周中的幾天的值:
monday = datetime.datetime.strptime(week '-1', '%G-W%V-%u')
tuesday = datetime.datetime(monday.year, monday.month, monday.day - monday.weekday() 1)
wednesday = datetime.datetime(monday.year, monday.month, monday.day - monday.weekday() 2)
thursday = datetime.datetime(monday.year, monday.month, monday.day - monday.weekday() 3)
friday = datetime.datetime(monday.year, monday.month, monday.day - monday.weekday() 4)
saturday = datetime.datetime(monday.year, monday.month, monday.day - monday.weekday() 5)
sunday = datetime.datetime(monday.year, monday.month, monday.day - monday.weekday() 6)
如果整周都在同一個月內,則此代碼作業正常,有沒有辦法對其進行修改以考慮可能不在同一個月內的幾周?
uj5u.com熱心網友回復:
使用時間增量:
tuesday = monday datetime.timedelta(days=1)
wednesday = ... # (and so on)
uj5u.com熱心網友回復:
將Get date from week number的(輕微)重復問題中的答案和 Rustam A. 的答案結合起來:
from datetime import datetime, timedelta
d = "2021-W48"
monday = datetime.strptime(d "-1", "%Y-W%W-%w")
week = [monday timedelta(days=x) for x in range(7)]
print(week)
# [datetime.datetime(2021, 11, 29, 0, 0), datetime.datetime(2021, 11, 30, 0, 0), datetime.datetime(2021, 12, 1, 0, 0), datetime.datetime(2021, 12, 2, 0, 0), datetime.datetime(2021, 12, 3, 0, 0), datetime.datetime(2021, 12, 4, 0, 0), datetime.datetime(2021, 12, 5, 0, 0)]
(編輯:使用 ISO 周時,請%G-W%V-%u按原樣使用)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/370517.html
