美文网首页
Python求当天是本月第几周?

Python求当天是本月第几周?

作者: 爱学习的代代 | 来源:发表于2019-11-29 08:59 被阅读0次

    1、这个需求是怎样产生的?

    由于在写一个工具平台的时候,需要查询数据库,而数据库的库名与表名都做了拆分:比如库按照年份来划分(举例:sms_message_2019),表名按照月份+当前周的方式来拼接(举例:sms_message_record_1105)
    比如:11.29号就是 11的第五周

    2、实现
    1. 首先想到是python的两大时间处理函数库:datetime和time
    2. 我们不需要精确到时分秒,排除time库
    3. datetime有一个 strftime() 格式化函数。
    4. 查阅Python的官方资料[见下图],可以找到 %W 或者 %w 参数可以满足需求
    5. %W 代表是当前天是本年的第几周,好像不太能实现:(我们想到的是要取差值:当前天所在的周数- 本月1号所在周的差值)
    6. 编写代码
    
    import datetime
    
    
    def get_week_of_month(year, month, day):
        """
        获取指定的某天是某个月的第几周
        周一为一周的开始
        实现思路:就是计算当天在本年的第y周,本月一1号在本年的第x周,然后求差即可。
        因为查阅python的系统库可以得知:
    
        """
    
        begin = int(datetime.date(year, month, 1).strftime("%W"))
        end = int(datetime.date(year, month, day).strftime("%W"))
    
        return end - begin + 1
    
    
    if __name__ == '__main__':
        print(get_week_of_month(2019, 11, 29))
        print(get_week_of_month(2019, 11, 30))
        print(get_week_of_month(2019, 11, 1))
    

    7.测试

    5
    5
    1
    

    附图:


    strftime格式化参数.png

    小结: 遇到问题,拆解问题,慢慢由已知的东西想到解决问题的思路。

    相关文章

      网友评论

          本文标题:Python求当天是本月第几周?

          本文链接:https://www.haomeiwen.com/subject/djrwwctx.html