from datetime import date
future = input("Enter a date(dd/mm/yyyy): ")
daystring = future[0:2]
monthstring = future[3:5]
yearstring = future[6:10]
today = (date.today())
month = date.today().month
year = date.today().year
day = date.today().day
if monthstring == "01" or "03" or "05" or "07" or "08" or "10" or "12":
if daystring > "31":
print("Invalid Date Entered")
if monthstring == "04" or "06" or "09" or "11":
if daystring > "30":
print("Invalid Date Entered")
months = ["Jan", "Feb", "Mar", "Apr", "May", "June",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
daysinmonth = [31, 29, 31, 30, 31, 30, 31, 31, 30,
31, 30, 31]
if future < today or monthstring > "12":
print("Invalid Date Entered")
else:
layout = "%d/%m/%Y"
a = datetime.strptime(future, layout)
b = datetime.strptime(today, layout)
delta = a - b
print ("The difference between the inputted date and todays date is: ",delta.days, "days")
此代码是要求用户在将来输入日期,然后代码应该使用该输入并从中减去当前日期。两个日期之间的差异python
例如,今天是01/11/2014,如果用户输入03/11/2014,则输出应该是差值为2天。
但是,每次输入未来日期时都会出现错误。
* “我得到一个错误每次我输入未来的日期” * - **什么错误**如果这是Python 2.x,你应该使用'raw_input'。为什么你从'datetime'导入''然后手动切割'future'并尝试自己解析它?只需*使用'strptime' *。 – jonrsharpe 2014-11-01 16:06:15
你在比较字符串;你知道当你这样做时,'9'>'31'是真的吗? – 2014-11-01 16:07:10
我使用python 3 – user3396351 2014-11-01 16:07:29