Python程序,它接受用户输入并通过一个等式进行处理,返回一个16小时的时间

2024-03-29 02:39:26 发布

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

所以我在Jupyter笔记本中设计了一个代码,它会占用你最后一次吃饭的时间,并在16小时后将其翻译过来。这个初始的代码块并不完全起作用,因为0000不起作用,任何以0开头的输入都会推送到我的else语句(1600)。 我真的希望这件事:

  • 问一下你最后一次吃东西的时间是什么时候
  • 转换成24小时时间,输入函数
  • 让它做它的计算
  • 吐出hh:mm的计算,这是16小时后

到目前为止,我得到的是:

def fasting_time(time_last_ate):
    if time_last_ate > 1 and time_last_ate < 1200:
        result1 = add(time_last_ate,1600) - 1200
        return result1
    if time_last_ate > 1200 and time_last_ate < 2359:
        result2 = add(time_last_ate, 1600)- 1200
        return result2
    else: 
        return('1600')

然后,我尝试使用时间转换器将整数转换为可用的值。但是,此代码将只接受字符串:

from datetime import datetime
import parsedatetime as pdt # $ pip install parsedatetime

cal = pdt.Calendar()
for time_str in ['1600']:
    dt, flags = cal.parseDT(time_str)
    assert flags
    print(dt)

输出如下所示:

2018-04-06 16:00:00

但是我不能把fasting_time(n)插入到` for time\u str in['1600']:

太好了。我该怎么做


Tags: and代码addreturniftime时间else
1条回答
网友
1楼 · 发布于 2024-03-29 02:39:26

我会看datetime.timedelta

class datetime.timedelta A duration expressing the difference between two date, time, or datetime instances to microsecond resolution.

您的代码可以重写为执行strptime(input)(字符串解析时间),在strftime(result)(来自时间的字符串)中返回所需数量的timedelta

相关问题 更多 >