Python 函数,根据用户输入从datetime.datetime.now()中添加或减去时间
我必须创建一个函数来计算时间。函数应该能够接受三个参数,一个参数将提供实际的时间量,第二个参数可以接受什么时间单位,第三个参数将指示是否必须减去或添加当前时间。用户可以指定实际时间单位是分钟还是小时。所以,一个函数time_calc1,h,+将给我们一个小时的时间,如果它被调用为time_calc1,h,-它将给我们一个小时的时间。对函数的另一次调用time_calc1,m,-将计算分钟数。如何创建这样的函数 到目前为止,我得到的是 def time\u sub\u hourdifftime: now=datetime.datetime.now lastHourDateTimeCompare=now-datetime.timedeltahours=difftime 返回lastHourDateTimeCompare.strftime“%H”+“Hours” 打印时间每小时1Python 函数,根据用户输入从datetime.datetime.now()中添加或减去时间,python,Python,我必须创建一个函数来计算时间。函数应该能够接受三个参数,一个参数将提供实际的时间量,第二个参数可以接受什么时间单位,第三个参数将指示是否必须减去或添加当前时间。用户可以指定实际时间单位是分钟还是小时。所以,一个函数time_calc1,h,+将给我们一个小时的时间,如果它被调用为time_calc1,h,-它将给我们一个小时的时间。对函数的另一次调用time_calc1,m,-将计算分钟数。如何创建这样的函数 到目前为止,我得到的是 def time\u sub\u hourdifftime:
根据用户提供的内容,我希望输出为1小时,以构建一个1小时的周期:
>>> import datetime
>>> datetime.timedelta(hours=1)
要构建一个90分钟的周期:
>>> datetime.timedelta(hours=1, minutes=30)
要从现有datetime对象中添加或减去该对象,请执行以下操作:
>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2019, 6, 13, 13, 19, 6, 15731)
>>> period_of_time = datetime.timedelta(hours=1.5)
>>> now + period_of_time
datetime.datetime(2019, 6, 13, 14, 49, 6, 15731)
>>> now - period_of_time
datetime.datetime(2019, 6, 13, 11, 49, 6, 15731)
这就是我一直在寻找的,我必须对它进行进一步的改进,以返回精确的数字,所以如果它是在下午4点(现在的时间)和2点(我们正在使用函数计算的时间)之间进行计算,我希望函数返回2小时。我还想让它更具动态性,这样我们就不必通过h或m,而是在调用函数并相应地进行计算时,以某种方式计算出来。如能就如何使该职能更具活力提出任何建议,我将不胜感激。谢谢你的帮助
#the objective is to find the difference between two times and let the
#user dictate if they want to add or reduce from the current time
def add_timeDiff(time, value, ch):
now = datetime.datetime.now()
if ch == '+' and value =='h':
raw_time = now + datetime.timedelta(hours=time)
result = raw_time.strftime("%Y-%m-%d %H:%M:%S")
elif ch == '-' and value =='h':
raw_time = now - datetime.timedelta(hours=time)
result = raw_time.strftime("%Y-%m-%d %H:%M:%S")
return result
print(add_timeDiff(1, 'h', '+'))
print(add_timeDiff(1, 'h', '-'))
把时区问题放在一边,当你明确地只返回小时时,为什么你会期望10分钟呢?罗根,如果用户想要分钟,我尝试获取分钟,如果用户想要输出小时,则获取小时。我在上面创建的函数将从现在的时间中简单地扣除小时,我希望它足够灵活,以便我们可以有分钟或小时,最终增加几周或几个月。这是我必须作为变量传递给SQL脚本的内容,以便我们能够灵活地计算所需的时间。我不明白这是如何回答文章的,尤其是当它甚至没有提出任何问题时。OP问我在哪里可以找到示例,或者这是否可以通过单个函数实现。大概他们知道,或者可以查找,如何处理写函数部分,所以我只想向他们展示如何加减时间增量,当然,也可以很容易地查找。Ben,我也需要帮助写函数部分。我是python的新手,我一直在努力编写这个函数。我刚刚运行了你发布的代码片段,它打印了12个小时。我现在的位置是1:29,根据您的代码,这是正确的-当前小时减去1小时的时间增量-那么您需要帮助的部分是什么?您的代码片段。strftime“%H”是它只返回小时的原因,顺便说一下。如果同时需要小时和分钟,可以使用strftime“%H:%M”。