回答
假設day
是datetime.date
或datetime.datetime
對象,此代碼創建用於上週週五datetime
/date
對象:
friday = day - timedelta(days=day.weekday()) + timedelta(days=4, weeks=-1)
說明:timedelta(days=day.weekday())
是星期一和day
之間的偏移,從而將4天,並減去一個周將在上週的星期五爲您提供幫助。
當然你也可以簡化這個(+4d -1w = -3d
):
friday = day - timedelta(days=day.weekday() + 3)
注:要獲得timedelta
,使用from datetime import timedelta
或者只是import datetime
並使用datetime.timedelta
週六和週日不適用。試試這個:'friday = day - timedelta(days =(day.weekday() - 4)%7,weeks = -1)' – 2012-09-03 21:50:32
你有這個問題嗎?我測試了2012-09-08和2012-09-09,我的代碼正確地給了我2012-08-31,而你的結果是2012-09-14 – ThiefMaster 2012-09-04 01:14:34
我的代碼應該是'weeks = 0'(或者省略參數) 。我錯過了張貼。另外,期望的結果取決於「上一週/上週」的含義以及是否定義從週日或週一開始的一週。我可能誤解了這個問題。我的(更正的)代碼給出了最近的星期五。 – 2012-09-04 17:11:38
的另一種更容易的方法是使用python-dateutil。 爲了得到前一週五:
>>> from dateutil.relativedelta import relativedelta, FR
>>> from datetime import datetime
>>> datetime(2015, 7, 8) + relativedelta(weekday=FR(-1))
datetime.datetime(2015, 7, 3, 0, 0)
而接下來的週五:
>>> datetime(2015, 7, 8) + relativedelta(weekday=FR(+1))
datetime.datetime(2015, 7, 10, 0, 0)
我真的很喜歡這個解決方案:) – vgoklani 2016-03-21 13:51:36
不具體到週五,但由於每天 「taget_dayofweek」(其中週一是0和週日爲6)
from datetime import datetime
target_dayofweek = 4 # Friday
current_dayofweek = datetime.now().weekday() # Today
if target_dayofweek <= current_dayofweek:
# target is in the current week
endDate = datetime.now() - timedelta(current_dayofweek - target_dayofweek)
else:
# target is in the previous week
endDate = datetime.now() - timedelta(weeks=1) + timedelta(target_dayofweek - current_dayofweek)
- 1. 查找本週星期一
- 2. 如何在當前周(週一至週五)找到解決的JIRA問題
- 3. 在PHP中查找當前周和前一週的日期範圍
- 4. 獲取本週的週一和週五的日期(PHP)
- 5. 在Excel中找到日期之前的週一或週日
- 6. 獲取上週五並獲取下一個星期四
- 7. 如果週六或週日落在星期一或星期日
- 8. 檢查給定日期是否在工作周內(週一至週五)
- 9. 如何獲得SAS中的前一個星期一(前一週的星期一)?
- 10. 星期五從星期開始的週數
- 11. SQL Server:週末以週五和上週末爲結束日期
- 12. 根據「日期」字段查找一週的星期一
- 13. 查找圖表中的週期數(Python)
- 14. 在PHP中找到最後一個週六到週五的完整日期
- 15. 本週星期一日期
- 16. 排序星期從週一到週日
- 17. HTML將日期動態更改爲週一,週三或週五
- 18. 獲取本週的星期一是週一至週日(VBScript)
- 19. 在PHP中找出第n周的星期一的日期?
- 20. 在本週的一週中的星期幾
- 21. 如何替換週六或週日前五週的計算日期
- 22. 從星期一到星期天mysql周
- 23. 檢查這個星期一是上週一在一個月
- 24. Android顯示從一週到另一週的日期(星期四至星期四)
- 25. php strtotime「上個星期五2012年4月」上週五沒有返回
- 26. 從星期六開始的週數周
- 27. 日期算法來獲得4個星期一進取,上週五
- 28. jQuery的日期選擇器返回週一至週五只
- 29. 獲取C#中給定週數的星期五
- 30. SQL Server:SELECT上週五下午12點到這個星期五12 PM
不一定。實際上,我只是寫了一個非常相似的代碼(比較那周的隨機日期表示的一週的星期一),我的一個網站的時間表不到一天。 – ThiefMaster 2011-05-30 06:11:10
是的,它的工作及其工作。感謝您的快速回復。 – Jibin 2011-05-30 06:37:27