Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 函数,根据用户输入从datetime.datetime.now()中添加或减去时间_Python - Fatal编程技术网

Python 函数,根据用户输入从datetime.datetime.now()中添加或减去时间

Python 函数,根据用户输入从datetime.datetime.now()中添加或减去时间,python,Python,我必须创建一个函数来计算时间。函数应该能够接受三个参数,一个参数将提供实际的时间量,第二个参数可以接受什么时间单位,第三个参数将指示是否必须减去或添加当前时间。用户可以指定实际时间单位是分钟还是小时。所以,一个函数time_calc1,h,+将给我们一个小时的时间,如果它被调用为time_calc1,h,-它将给我们一个小时的时间。对函数的另一次调用time_calc1,m,-将计算分钟数。如何创建这样的函数 到目前为止,我得到的是 def time\u sub\u hourdifftime:

我必须创建一个函数来计算时间。函数应该能够接受三个参数,一个参数将提供实际的时间量,第二个参数可以接受什么时间单位,第三个参数将指示是否必须减去或添加当前时间。用户可以指定实际时间单位是分钟还是小时。所以,一个函数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” 打印时间每小时1
根据用户提供的内容,我希望输出为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”。