问题:如何比较两个日期?
如何使用Python比较两个日期以查看稍后的日期?
例如,我想检查当前日期是否超过了我在假期中创建的此列表中的最后日期,因此它将自动发送电子邮件,告诉管理员更新holiday.txt文件。
回答 0
使用datetime
方法和运算符<
及其种类。
>>> from datetime import datetime, timedelta
>>> past = datetime.now() - timedelta(days=1)
>>> present = datetime.now()
>>> past < present
True
>>> datetime(3000, 1, 1) < present
False
>>> present - datetime(2000, 4, 4)
datetime.timedelta(4242, 75703, 762105)
回答 1
采用 time
假设您的初始日期是像这样的字符串:date1 = "31/12/2015"
date2 = "01/01/2016"
您可以执行以下操作:newdate1 = time.strptime(date1, "%d/%m/%Y")
并将newdate2 = time.strptime(date2, "%d/%m/%Y")
其转换为python的日期格式。然后,比较是显而易见的:newdate1 > newdate2
will return False
newdate1 < newdate2
will returnTrue
回答 2
datetime.date(2011, 1, 1) < datetime.date(2011, 1, 2)
会回来的True
。
datetime.date(2011, 1, 1) - datetime.date(2011, 1, 2)
会回来的datetime.timedelta(-1)
。
datetime.date(2011, 1, 1) + datetime.date(2011, 1, 2)
会回来的datetime.timedelta(1)
。
请参阅文档。
回答 3
使用datetime
和比较的其他答案也仅适用于时间,没有日期。
例如,要检查现在是否大于或小于8:00,我们可以使用:
import datetime
eight_am = datetime.time( 8,0,0 ) # Time, without a date
然后与之比较:
datetime.datetime.now().time() > eight_am
这将返回 True
回答 4
要计算两个日期之间的天差,可以按照以下步骤进行:
import datetime
import math
issuedate = datetime(2019,5,9) #calculate the issue datetime
current_date = datetime.datetime.now() #calculate the current datetime
diff_date = current_date - issuedate #//calculate the date difference with time also
amount = fine #you want change
if diff_date.total_seconds() > 0.0: #its matching your condition
days = math.ceil(diff_date.total_seconds()/86400) #calculate days (in
one day 86400 seconds)
deductable_amount = round(amount,2)*days #calclulated fine for all days
因为如果在截止日期之前还有一秒钟多的时间,那么我们必须收费
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。