• python--时间段遍历


    创建函数:
    def date_range(start_date,end_date):
        for n in range(int((end_date-start_date).days)):
            yield start_date+datetime.timedelta(n)

    调用:

    for i in date_range(start_date,end_date):

    实例:写一个程序,用户输入起始日期, 该程序可以计算后续的 120天中, 哪些是周 1, 周3, 周5, 周日。 并且把这些天打印出来。

    import datetime
    def date_range(start_date,end_date):
        for n in range(int((end_date-start_date).days)):
            yield start_date+datetime.timedelta(n)
    dict1={'monday':[],'wednesday':[],'friday':[],'sunday':[]}
    newday=input('输入时间,年月日按‘-’分割:')
    newday=datetime.datetime.strptime(newday,'%Y-%m-%d')
    addday=datetime.timedelta(days=120)
    n_day=newday+addday
    for i in date_range(newday,n_day):
        if i.weekday()==0:
            dict1['monday'].append(datetime.datetime.strftime(i,'%Y%m%d'))
        if i.weekday()==2:
            dict1['wednesday'].append(datetime.datetime.strftime(i,'%Y%m%d'))
        if i.weekday()==4:
            dict1['friday'].append(datetime.datetime.strftime(i,'%Y%m%d'))
        if i.weekday() == 6:
            dict1['sunday'].append(datetime.datetime.strftime(i,'%Y%m%d'))
    print(dict1)

    strptime():由字符串格式转化为日期格式的函数为: datetime.datetime.strptime()。我们输入的日期和时间是字符串,要处理日期和时间,首先必须把str转换为datetime。转换方法是通过datetime.strptime()实现,需要一个日期和时间的格式化字符串:

    >>>day = datetime.strptime(‘2019-5-1 5:54:45’, ‘%Y-%m-%d %H:%M:%S’)
    >>>day
    >>>datetime.datetime(2019, 5, 1, 5, 54, 45)
    >>> print(day)
    2019-05-01 05:54:45
    >>> type(day)
    <class ‘datetime.datetime’>

    strftime():由日期格式转化为字符串格式的函数为: datetime.datetime.strftime()。后台提取到datetime对象后,要把它格式化为字符串显示给用户,就需要转换为str,转换方法是通过strftime()实现的,同样需要一个日期和时间的格式化字符串:

    >>> s=datetime.strftime(datetime.now(), “%Y-%m-%d %H:%M”)
    >>> s
    ‘2019-05-15 15:26’
    >>> type(s)
    <class ‘str’>
    >>> print(s)
    2019-05-15 15:26

    datetime加减对日期和时间进行加减实际上就是把datetime往后或往前计算,得到新的datetime。加减可以直接用+和-运算符,不过需要导入timedelta这个类, 如以下例子:

    >>> from datetime import datetime, timedelta
    >>> now = datetime.now()
    >>> now
    datetime.datetime(2019, 5, 15, 15, 29, 17, 470262)
    >>> now + timedelta(hours=8)
    datetime.datetime(2019, 5, 15, 23, 29, 17, 470262)
    >>> now - timedelta(days=2)
    datetime.datetime(2019, 5, 13, 15, 29, 17, 470262)
    >>> now + timedelta(days=2, hours=12)
    datetime.datetime(2019, 5, 18, 3, 29, 17, 470262)
    >>> now - timedelta(days=2.5)
    datetime.datetime(2019, 5, 13, 3, 29, 17, 470262)

  • 相关阅读:
    java enum类
    mvn filter autoconfig 产生自动配置
    Spring与Quartz的整合实现定时任务调度 以及crontab的用法
    网络广告术语CPC、CPM和CTR的含义和关系
    spring mvc3的注解@ResponseBody 自动返回jason
    Google Guava14.0 瓜娃学习笔记
    java中的各个数据结构区别
    org.apache.http.client.HttpClient; HttpClient 4.3超时设置
    maven test 运行 指定类或方法 打包 mvn clean assembly:assembly
    为什么要做url encode
  • 原文地址:https://www.cnblogs.com/guang2508/p/12923127.html
Copyright © 2020-2023  润新知