2013-10-30 22 views
6

Şu andan itibaren pazartesi günü başlayan ve Pazar günü sona eren şu anki haftaya bakıyorum ama önceki haftaya pazartesiden başlayıp Pazar günü nasıl sona erebilirim? İşte Geçerli haftanın şimdi ne var:Bir önceki hafta Python'da nasıl alabilirim?

>>> import datetime 
>>> today = datetime.date.today() 
>>> weekday = today.weekday() 
>>> start_delta = datetime.timedelta(days=weekday) 
>>> start_of_week = today - start_delta 
>>> week_dates = [] 
>>> for day in range(7): 
...  week_dates.append(start_of_week + datetime.timedelta(days=day)) 
... 
>>> week_dates 
[datetime.date(2013, 10, 28), datetime.date(2013, 10, 29), datetime.date(2013, 10, 30),  datetime.date(2013, 10, 31), datetime.date(2013, 11, 1), datetime.date(2013, 11, 2), datetime.date(2013, 11, 3)] 
>>> week_dates[0], week_dates[-1] 
(datetime.date(2013, 10, 28), datetime.date(2013, 11, 3)) <--- Monday, Sunday 
+0

Aynı şeyi yapın ama 7 gün daha geri dönün mü? –

+1

olası bir kopyası [Geçen hafta, bu hafta ve gelecek haftadaki tarih dizisi oluşturma] (http://stackoverflow.com/questions/17611774/build-array-of-dates-in-last-week-this-week- ve-gelecek-hafta) –

cevap

12

Sadece ek bir hafta çıkarmak için start_delta için weeks=1 ekleyin:

>>> start_delta = datetime.timedelta(days=weekday, weeks=1) 

Yani, bugün (Çarşamba, 30 Ekim 2013) için, start_delta, 9 gün olacak (son pazartesi, 21 Ekim 2013).

>>> start_delta 
datetime.timedelta(9) 
>>> start_of_week = today - start_delta 
>>> start_of_week 
datetime.date(2013, 10, 21) 
İlgili konular