2016-04-03 24 views
0

PySide (QcalendarWidget) içinde bir takvim için haftalık bir program yazıyorum. Örneğin, ilk hafta, bu haftanın her günü için A, B, C, D görevlerine sahip olmak istiyorum. Her ayın ilk haftası (ilk 7 gün) için bir sözlük böyle bir şeydir: 1, 3 ve 5 geçerli ayın birinci, üçüncü ve beşinci gün olanQdate, ayın ilk gününü kazanıyor

FirstWeekTasks={1:["A","B"],3:["C","D"],5:["A","D"]} 

.

Bunu nasıl yapabilirim? time modülünü kullanarak Teşekkür

+0

Ayın 1, 3 ve 5. günü için tarihler mi istiyorsunuz? –

+0

Beklenen çıktı? – Pythonista

+0

@BrendanAbel tam olarak, Başka bir deyişle, geçerli ay için istiyorum, görevleri ayarlayın. Her hafta farklı Görevler setleri vardır. –

cevap

0

:

>>> import time 
>>> time.localtime().tm_mday 
4 

datetime modülünü kullanarak:

>>> import datetime 
>>> datetime.datetime.now().day 
4 
0

Sen QDate.addDays() ile yapabilirsiniz. takvim widget arasından seçilen tarih

Başlangıç:

>>> seldate.day()  
19 
>>> seldate.addDays(1 - seldate.day()) # first 
PySide.QtCore.QDate(2016, 4, 1) 
>>> seldate.addDays(3 - seldate.day()) # third 
PySide.QtCore.QDate(2016, 4, 3) 
>>> seldate.addDays(5 - seldate.day()) # fifth 
PySide.QtCore.QDate(2016, 4, 5) 

Yani addDays() bir alabilir:

Sonra
>>> seldate = calwidget.selectedDate() 
>>> seldate 
PySide.QtCore.QDate(2016, 4, 19) 

seçilen takvim ayının gerekli günlerini almak için, sadece day() çıkarma zaman içinde ileri gitmek için pozitif sayı ve geriye doğru gitmek için negatif bir sayı.