如何确定我们是否在当月的第一周

mor*_*ous 3 python calendar

我在Python中编写了一个小实用程序函数,它返回一个布尔值,表示今天是否在该月的第一周.

这是我到目前为止:

import calendar
import time
y, m = time.localtime(time.time())[:2]
data = calendar.month(y, m)

In [24]: type(temp)
Out[24]: <type 'str'>

In [25]: print temp
-------> print(temp)
     July 2010
Mo Tu We Th Fr Sa Su
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Run Code Online (Sandbox Code Playgroud)

我想将此字符串打包到列表列表中.实际上,它只是我想要的第一行,因为它是第一周,但我可以推广该功能,这样我就可以检查我们是否在第n周,其中1 <n <5(取决于月份)当然).

一旦我有一个列表列表,我打算检查当前日期是否是列表中的元素.

任何人都可以展示如何将calendar.month()方法的输出转换为列表列表?

最后但并非最不重要,我可能会在这里重新发明轮子.如果有一种内置的方式(或者更多Pythonic的方式),有人请告诉我.

Eli*_*ght 5

这是一个简单的函数,它将告诉您今天是否在本月的第一周:

from datetime import date

def first_week():
    today = date.today()
    return today.weekday() - today.day >= -1
Run Code Online (Sandbox Code Playgroud)

这比处理日历库中的调用输出更简单; 只需以数字形式(从0开始)获取星期几,然后减去月中的某一天(从1开始).如果结果至少为-1,那么你就在第一周.