首页 文章

在Python中生成一周的日期?

提问于
浏览
0

我需要从日期生成一周的星期一(例如:2015/10/22) . 并生成下一天的日期:星期一,星期二,星期三,星期四,星期五,星期六,星期日 .

Java中的示例:(初始日期= 2015/10/22)

//星期一:

date.set (Calendar.DAY_OF_WEEK, Calendar.MONDAY);

//第二天(星期二)加

date.add (Calendar.DATE, 1);

//第二天(星期三)添加:

date.add (Calendar.DATE, 1);

我怎么能用Python做到这一点?

3 回答

  • 0

    使用timedelta函数在python中更容易

    import datetime
    
    mydate = datetime.datetime(2015, 10, 22, 00, 00, 00, 00)
    mymondaydate = mydate - datetime.timedelta(days=mydate.weekday())
    mytuesdaydate = mymondaydate + datetime.timedelta(days=1)
    
    print(mydate)
    print(mymondaydate)
    print(mytuesdaydate)
    

    诀窍是使用weekday()函数 . 从文档

    date.weekday() - 以整数形式返回星期几,其中星期一为0,星期日为6 .

    因此从当前日期减去它会给出该周的星期一日期

  • 2

    您可以像这样设置初始日期:

    from datetime import datetime, timedelta    
    d = datetime(2015,10,22)
    

    然后,如果你想获得下一个星期一,请使用timedelta和datetime.weekday()(星期一为0):

    d + timedelta(7 - d.weekday())
    datetime.datetime(2015, 10, 26, 0, 0)
    
  • 1

    为您的问题提供另一个版本 . 你可以参考官方网站的文件:datetimetime

    from datetime import date
    from datetime import timedelta
    import time
    
    t = time.strptime('2015/10/22', '%Y/%m/%d')
    old_day = date.fromtimestamp(time.mktime(t))
    a_day = timedelta(days=1)
    new_day = old_day + a_day
    
    print new_day.strftime('%a')
    

相关问题