Lưu ý: Các OP nói trong các ý kiến, "tôi đang tìm kiếm quá khứ thứ hai ". Tôi lấy điều này để có nghĩa là chúng tôi đang tìm kiếm thứ hai cuối cùng đã xảy ra nghiêm ngặt trước ngày hôm nay.
Tính toán hơi khó khăn khi chỉ sử dụng mô-đun datetime
(đặc biệt với cách giải thích ở trên "Thứ Hai vừa qua" và nếu bạn muốn tránh clunky if-statements
). Ví dụ, nếu today
là Thứ Hai như 2013-12-23
,
today - DT.timedelta(days=today.weekday())
lợi nhuận 2013-12-23
, đó là cùng một ngày như today
(không phải là quá khứ Thứ Hai).
Lợi thế của việc sử dụng dateutil module là bạn không phải thực hiện các tính toán tinh thần khó khăn cũng như buộc người đọc phải làm như vậy để có được ngày phù hợp. dateutil
sẽ làm tất cả cho bạn:
import dateutil.relativedelta as rdelta
import datetime as DT
today = DT.date(2013, 12, 23) # Monday
past_monday = today + rdelta.relativedelta(days=-1, weekday=rdelta.MO(-1))
print(past_monday)
# 2013-12-16
next_monday = today + rdelta.relativedelta(days=1, weekday=rdelta.MO(+1))
print(next_monday)
# 2013-12-30
Lưu ý rằng days=-1
là cần thiết để đảm bảo rằng past_monday
là một ngày khác với today
.
Thứ Hai hoặc thứ Hai vừa qua? –
Tôi đang tìm kiếm Thứ Hai trước đây – Joe