Python 日期时间:检查日期是否在1周内
我想做的是查看Python 日期时间:检查日期是否在1周内,python,datetime,timedelta,Python,Datetime,Timedelta,我想做的是查看date是否在currdate1周内 from datetime import datetime, timedelta import yagmail year = datetime.now().year month = datetime.now().month day = datetime.now().day currdate = '{}-{}-{}'.format(year, month, day) currdate = datetime.strptime(currdate,
date
是否在currdate
1周内
from datetime import datetime, timedelta
import yagmail
year = datetime.now().year
month = datetime.now().month
day = datetime.now().day
currdate = '{}-{}-{}'.format(year, month, day)
currdate = datetime.strptime(currdate, '%Y-%m-%d')
date = '2018-04-01'
days = currdate - timedelta(int(date[-2:]))
days = str(days)
print(days)
if days[8:11] == '07':
yag = yagmail.SMTP("#########@gmail.com", "######
))
content=[“你的一个家庭作业在一周内到期!”]
发送(“#############@gmail.com”,“作业即将到期!”,内容)
其他:
打印('它不是')
但它显示:
2018-04-07 00:00:00
It Isnt't
我不知道为什么。因为
天[8:11]
是07
它不是07
。它是07
(注意后面的空格)
以下更改将起作用:
if int(days[8:11]) == 7:
它不是
07
。它是07
(注意尾随空格)
以下更改将起作用:
if int(days[8:11]) == 7:
在[8:11]天内,您将获得以下输出
>>> days[8:11]
'08 '
因此,如果你想使用相同的方法,你应该使用days[8:10]='07',因为它不会在最后有额外的空间
>>> days[8:10]
'08'
所以你应该使用
如果天[8:10]=“07”:对于天[8:11],您将获得以下输出
>>> days[8:11]
'08 '
因此,如果你想使用相同的方法,你应该使用days[8:10]='07',因为它不会在最后有额外的空间
>>> days[8:10]
'08'
所以你应该使用
如果天[8:10]=='07':我想你启动datetime.now()时的第一行只是为了测试,但不要这样做,因为它可能会在不同的日子结束(如果你在午夜前后的毫秒运行…),这将在这方面工作得更好
now = datetime.datetime.now()
year = now.year
month = now.month
day = now.day
不管怎样,请阅读datetime timedelta。只要让你有逻辑就可以了。
导入日期时间
测试日期字符串=“2018-04-10”
d=datetime.datetime.strtime(测试日期字符串,“%Y-%m-%d”)
now=datetime.datetime.now()
delta=d-现在
elif delta.days<7:
打印(“您还有不到7天的时间”)
我想当您启动datetime.now()三次时,您的第一行只是为了测试目的,但不要这样做,因为它可能会在不同的日子结束(如果您正好在午夜前后的毫秒运行…),这将在这方面起到更好的作用
now = datetime.datetime.now()
year = now.year
month = now.month
day = now.day
不管怎样,请阅读datetime timedelta。只要让你有逻辑就可以了。
导入日期时间
测试日期字符串=“2018-04-10”
d=datetime.datetime.strtime(测试日期字符串,“%Y-%m-%d”)
now=datetime.datetime.now()
delta=d-现在
elif delta.days<7:
打印(“您还有不到7天的时间”)
我将创建一个函数,您可以将日期作为字符串传递。类似如下:
import datetime
def check_if_less_than_seven_days(x):
d = datetime.datetime.strptime(x, "%Y-%m-%d") # Add .date() if hour doesn't matter
now = datetime.datetime.now() # Add .date() if hour doesn't matter
return (d - now).days < 7
if check_if_less_than_seven_days("2018-04-18"):
print('Do something') # This will not print
if check_if_less_than_seven_days("2018-04-14"):
print('Do something') # This will print
我将创建一个函数,您可以将日期作为字符串传递。类似如下:
import datetime
def check_if_less_than_seven_days(x):
d = datetime.datetime.strptime(x, "%Y-%m-%d") # Add .date() if hour doesn't matter
now = datetime.datetime.now() # Add .date() if hour doesn't matter
return (d - now).days < 7
if check_if_less_than_seven_days("2018-04-18"):
print('Do something') # This will not print
if check_if_less_than_seven_days("2018-04-14"):
print('Do something') # This will print
timedelta(int(日期[-2:])
timedelta(int(日期[-2:]))