0

我正在尝试编写一个桌面应用程序,它需要当前时间并添加 90 分钟的增量来告诉用户如果他们现在上床睡觉应该何时醒来(大多数人的睡眠周期以 90 分钟的周期可靠地发生)。

为此,我需要程序获取当前日期时间并添加 6 次重复,每次 90 分钟。到目前为止,我已经尝试了几种方法,这是我觉得最接近的方法(使用 Python 3.7):

import datetime

now = datetime.datetime.now()

for i (0,7):

    gotosleep = now + datetime.datetime(0, 0, 0[, 0[, (90*i)[, 0[, 0]]]])
    print(gotosleep)

我也尝试过格式化datetime.datetime(0, 0, 0[, 0[, (90*i)[, 0[, 0]]]])datetime.datetime(0, 0, 0[ 0[ (90*i)[ 0[ 0]]]])因为我不断收到语法错误,但无济于事。

4

2 回答 2

1

您可以使用 timedelta:

import datetime

now = datetime.datetime.now()

for i in range(7):

    gotosleep = now + datetime.timedelta(0,i*60*90)
    print(gotosleep)

输出:

2018-08-02 09:26:11.631513
2018-08-02 10:56:11.631513
2018-08-02 12:26:11.631513
2018-08-02 13:56:11.631513
2018-08-02 15:26:11.631513
2018-08-02 16:56:11.631513
2018-08-02 18:26:11.631513
于 2018-08-02T07:27:07.803 回答
0

使用datetime.timedelta我们可以将所需的时间间隔与当前时间相加。

from datetime import timedelta, datetime

sleep_cycles = 7    
result = datetime.now() + timedelta(minutes=90 * sleep_cycles)

补充说明

我在你写的问题中看到了这一点datetime.datetime(0, 0, 0[, 0[, (90*i)[, 0[, 0]]]])。这表明阅读文档有困难:当文档中出现诸如此类的语法时[, argument],这意味着给定的参数是可选的,而不是必须将参数包裹在方括号中。

出于同样的原因,您不需要添加所有这些参数。例如,当您想使用第二个可选参数时,您将按如下方式进行:

datetime.datetime(
    required_1,
    required_2,
    required_3,
    optional_1,
    optional_2
)

我希望您现在可以更清楚地阅读文档。

于 2018-08-02T07:23:55.920 回答