ugo*_*ren 59
@ taymon的回答有一些改进:
today = datetime.date.today()
friday = today + datetime.timedelta( (4-today.weekday()) % 7 )
Run Code Online (Sandbox Code Playgroud)
4是星期五的工作日(从星期一开始计算0).
( (4-today.weekday()) % 7)是下周五的天数(%总是非负数).
在看到@ ubuntu的回答后,我应该添加两件事:
1.我不确定星期五= 4是否普遍正确.有些人周日开始他们的一周.
星期五,这段代码在同一天返回.要获得下一个,请使用(3-today.weekday())%7+1.就在老x%n来((x-1)%n)+1转换.
Tay*_*mon 32
首先,你需要这个datetime库:
import datetime
Run Code Online (Sandbox Code Playgroud)
那你需要一个开始日期; 就是今天.
d = datetime.date.today()
Run Code Online (Sandbox Code Playgroud)
从那里开始,你要继续前进,直到你到达星期五.该date.weekday方法将周一至周日表示为0到6,因此:
while d.weekday() != 4:
Run Code Online (Sandbox Code Playgroud)
如果当天不是星期五,您必须每天添加一天.要为date对象添加时间间隔,请使用timedelta对象.
d += datetime.timedelta(1)
Run Code Online (Sandbox Code Playgroud)
把它们放在一起,d最终将包含一个date代表下周五的对象.请注意,如果今天是星期五,则此代码将在今天生成; 你可以调整它,如果你需要它来生产下周五.
unu*_*tbu 20
以下是使用dateutil的方法:
import datetime as DT
import dateutil.relativedelta as REL
today = DT.date.today()
print(today)
# 2012-01-10
rd = REL.relativedelta(days=1, weekday=REL.FR)
next_friday = today + rd
print(next_friday)
# 2012-01-13
Run Code Online (Sandbox Code Playgroud)
(该days = 1参数确保了"下一个星期五"是不一样today的情况下,today恰好是一个星期五).
小智 6
我发现这个钟摆非常有用。就一行
>>> pendulum.now().next(pendulum.FRIDAY).strftime('%Y-%m-%d')
'2019-04-26'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17642 次 |
| 最近记录: |