如何比较两个日期,看它们是否在1年内?



我需要从网页上刮掉一个日期,并将其与今天的日期进行比较,看看刮掉的日期是否在今天的1年内,并产生一个真假声明。

我昨天花了大约4个小时试图让这个工作,但当我试图在这个实现中使用它们时,我一直从我在互联网上找到的每个例子中得到错误。

最终我得到了一些工作没有错误,但它产生了错误的结果。

不幸的是,我昨晚设法删除了那个脚本,现在我又回到了原点。与其把我的头往墙上撞,谁能告诉我正确的做法吗?

我正在尝试做这样的事情

contract_end_date = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="lbl_CONTRACT_EXPIRES"]'))).text
(example, contract_end_date = "09/25/2022")
if contract_end_date <= todays_date_plus_1_year:
return True
else:
return False

非常感谢你的帮助

对于datetime.timedelta,这应该是可行的。

确保你的contract_end_date是一个datetime对象。

编辑:添加str到datetime的转换

from datetime import datetime, timedelta
def expires_within_a_year(date_str):
"""date_str format must be like this: 09/25/2022"""
contract_end_date = datetime.strptime(date_str, "%m/%d/%Y")
today = datetime.now()
one_year = timedelta(days=365)
one_year_later = today + one_year
# true if within the next 365 days (so if today is 09/25/2022, enddate 09/24/2023 would return true, enddate 09/25/2023 would return false)
return contract_end_date < one_year_later

略短:

from datetime import datetime
def expires_within_a_year(date_str):
contract_end_date = datetime.strptime(date_str, "%m/%d/%Y")
return (contract_end_date - datetime.now()).days < 365
expires_within_a_year('09/25/2022')  # True

相关内容

  • 没有找到相关文章

最新更新