在 Python 中生成一周中第几天的日期?
Generating dates to the days of a week in Python?
我需要从一个日期(例如: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 中执行此操作?
您可以这样设置您的初始日期:
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)
在 python 中使用 timedelta 函数更容易
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()
- Return the day of the week as an integer, where Monday is 0 and Sunday is 6.
所以从当前日期中减去它得到该周星期一的日期
为您的问题提供另一个版本。
可以参考官网文档:datetime, time
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')
我需要从一个日期(例如: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 中执行此操作?
您可以这样设置您的初始日期:
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)
在 python 中使用 timedelta 函数更容易
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() - Return the day of the week as an integer, where Monday is 0 and Sunday is 6.
所以从当前日期中减去它得到该周星期一的日期
为您的问题提供另一个版本。 可以参考官网文档:datetime, time
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')