如何从设定时间中扣除当前时间

时间:2016-04-19 18:17:54

标签: python python-2.7 date time

所以我想创建一个'计划者'或日记。我正在尝试创建代码,以便建议您在睡觉前一天或在您必须进行计划之前离开多少时间。

late = timedelta(hours=23)
current_time = now.hour,now.minute
time_left = (late - current_time).minutes
print 'So if the time is %s:%s, That means you have %s minutes left' % (now.hour,now.minute,time_left) 

从查看其他主题这是我的方法,但我尝试了其他几种方法,如

late = datetime(datetime.day,datetime.month,datetime.year,23,00) 

再次在其他线程上看到了这一点。我已经尝试了很多方法,现在我开始迷惑自己如何解决它。

再次感谢您提前提供任何帮助

编辑: 使用时

late = datetime(datetime.day,datetime,month,datetime.year,23,00) 

我得到了Valuerror'日超出了一个月的范围'

并使用当前代码

late = timedelta(23,00) 

我得到了一个类型错误'不支持的操作数类型 - :'datetime.timedelta'和'tuple'在这个例子中。

我只想让代码输出晚上11点(或23点)与当前时间(分钟)之间的时差。抱歉没有更清楚

答案编辑: 感谢您的评论和答案,我正在使代码变得复杂并且没有正确使用datetime(),

    y = today.year
    m = today.month
    d = today.day

    late = datetime(y,m,d,23,0,0)

我的月份和日期是错误的,并且时间格式错误。

感谢帮助人员。

1 个答案:

答案 0 :(得分:4)

以下内容将演示如何实现您想要实现的目标

from datetime import datetime


today = datetime.today()
y = today.year
m = today.month
d = today.day

late = datetime(y,m,d,23,0,0)

now = datetime.now()

timeDiff = late - now
print 'So if the time is %s:%s, That means you have %s minutes left' % (now.hour,now.minute,timeDiff.seconds/60) 

{date}方法已经实现了日期时间,但显然要使用运算符,两个操作数都必须是datetime类型。

__sub__

当你从另一个日期时间对象中减去一个日期时间对象时,你会得到一个timedelta类型的对象。

>>> datetime.now().__class__
<type 'datetime.datetime'>
  

datetime代表时间戳,而timedelta代表时差

可以从日期时间对象中减去timedelta对象,但反之亦然,这是不言自明的。

>>> (datetime(2016,04,19)-datetime(2016,04,18)).__class__
>>> <type 'datetime.timedelta'>