我需要从网页上刮掉一个日期,并将其与今天的日期进行比较,看看刮掉的日期是否在今天的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