如何在datetime中添加时间?

2024-10-03 11:23:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一个桌面应用程序,它以当前时间为单位,增加90分钟的增量,告诉用户如果现在上床睡觉应该什么时候起床(大多数人的睡眠周期是90分钟)。你知道吗

要做到这一点,我需要程序采取目前的日期时间和增加6个90分钟的重复。到目前为止,我已经尝试了几种方法,下面是我觉得最接近的方法(使用Python3.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]]]]),因为我不断地得到语法错误,但没有结果。你知道吗


Tags: 方法用户import程序应用程序fordatetime时间
2条回答

您可以使用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

使用^{}我们可以将所需的时间间隔和当前时间相加。你知道吗

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
)

我希望你现在能更清楚地阅读文档。你知道吗

相关问题 更多 >