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,获取月份的第一天的主要内容,如果未能解决你的问题,请参考以下文章

如何在sql中从给定的月份和年份获取月份的第一天和最后一天

PHP获取一个月的第一天和最后一天

在java中如何通过一个月份,获得该月份的第一天的日期?

记录自己博客园的第一天

js怎么判断月份的第一天是周几?

SQL语句 如何取得指定月份的最后一天的日期