Qdate,获取月份的第一天
Posted
技术标签:
【中文标题】Qdate,获取月份的第一天【英文标题】:Qdate, getting first day of month 【发布时间】:2016-04-03 19:22:33 【问题描述】:我正在为 PySide (QcalendarWidget) 中的日历编写每周计划。例如,在第一周,我希望这周的每一天都有任务 A、B、C、D。每个月的第一周(前 7 天)的字典是这样的:
FirstWeekTasks=1:["A","B"],3:["C","D"],5:["A","D"]
其中 1、3 和 5 是当月的第一天、第三天和第五天。
我该怎么做? 谢谢
【问题讨论】:
您想要一个月的第 1 天、第 3 天和第 5 天的日期吗? @BrendanAbel 确切地说,我想在本月设置任务。每周都有不同的任务集。 1、3 和 5 是什么意思?你想要每周的第一天吗?还是一个月? @BrendanAbel 表示第一周,1、3、5 代表天数。例如,一周的第一天、一周的第三天等等。 但周数与月数不一致。 E 如果一个月的第一天在一周的中间怎么办 【参考方案1】:您可以使用QDate.addDays() 来做到这一点。
从日历小部件中选择的日期开始:
>>> seldate = calwidget.selectedDate()
>>> seldate
PySide.QtCore.QDate(2016, 4, 19)
然后要获得所选日历月的所需天数,只需减去day():
>>> 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)
所以addDays()
可以取正数及时向前,取负数向后退。
【讨论】:
【参考方案2】:使用time
模块:
>>> import time
>>> time.localtime().tm_mday
4
使用datetime
模块:
>>> import datetime
>>> datetime.datetime.now().day
4
【讨论】:
以上是关于Qdate,获取月份的第一天的主要内容,如果未能解决你的问题,请参考以下文章