• 技术文章 >Python技术 >Python基础教程

    calendar如何筛选出python3时间中重复事件?

    小妮浅浅小妮浅浅2020-11-17 18:04:09原创2093

    我们讲过很多筛选的方法,不过好像并不是所有的方法都可以用来筛选时间。而且本期小编需要大家筛选的是不同时间中的相同事件,没有看清题目的小伙伴可以仔细了哦~那么,我们可以用calendar来处理吗?回答是,当然可以!接下来小编就带大家把这些时间筛选出来吧。


    例如,Python 亚特兰大用户组在每个月的第二个星期四开会。要计算一年的会议日期,请使用monthcalendar()。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    import calendar

    import pprint

      

    pprint.pprint(calendar.monthcalendar(2017, 7))

      

    # 输出

    # [[0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0]]

    0 值是与给定月份重叠的一周中的时间,是另一个月的一部分。

    一周的第一天默认为星期一。可以通过调用setfirstweekday()来更改,但由于日历模块包含用于索引返回的日期范围的常量 monthcalendar(),因此在这种情况下跳过该步骤更方便。

    要计算一年的小组会议日期,假设它们总是在每个月的第二个星期四,查看 monthcalendar()输出来查找星期四。本月的第一周和最后一周填充 0 值作为前一个月或后一个月天数的占位符。例如,如果一个月在星期五开始,则星期四位置第一周的值将为 0。

    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

    32

    33

    34

    35

    36

    37

    38

    import calendar

    import sys

      

    year = int(sys.argv[1])

      

    # Show every month

    for month in range(1, 13):

      

        # Compute the dates for each week that overlaps the month

        c = calendar.monthcalendar(year, month)

        first_week = c[0]

        second_week = c[1]

        third_week = c[2]

      

        # If there is a Thursday in the first week,

        # the second Thursday is # in the second week.

        # Otherwise, the second Thursday must be in

        # the third week.

        if first_week[calendar.THURSDAY]:

            meeting_date = second_week[calendar.THURSDAY]

        else:

            meeting_date = third_week[calendar.THURSDAY]

      

        print('{:>3}: {:>2}'.format(calendar.month_abbr[month], meeting_date))

      

    # 输出   

    # Jan: 12

    # Feb:  9

    # Mar:  9

    # Apr: 13

    # May: 11

    # Jun:  8

    # Jul: 13

    # Aug: 10

    # Sep: 14

    # Oct: 12

    # Nov:  9

    # Dec: 14


    相信试过的小伙伴已经筛选出结果了,检查一下是不是都是重复的时间呢~更多Python学习推荐:PyThon学习网教学中心

    专题推荐:python3时间
    上一篇:calendar可以在python3时间中生成日历吗? 下一篇:calendar在python3时间中有哪些常用函数?怎么用?

    相关文章推荐

    • datetime怎样在python3时间中执行循环?• calendar如何判断python3时间?• python3时间如何用calendar输出?• calendar可以在python3时间中生成日历吗?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备16018502号-40

  • 取消发布评论
  • 

    Python学习网