0
我是Salech,我正在學習Python。 Python是我第一個編程語言。這是我第二天跟隨YouTube視頻「從零到英雄」。而我無法解決的第一個問題與時間和日期有關。使減法可取:'datetime.time'和'datetime.datetime'
挑戰:
- 要求用戶輸入的最後期限爲他們的項目
- 告訴他們,他們有多少天完成項目
- 額外的信貸給他們的答案作爲組合周的&天
我提出所有這一切,但我認爲添加額外的功能,該功能需要的時間的輸入(HH:MM:SS),並打印該噸ime減去當前時間。以下是我想做到這一點:
import math
import datetime
currentDate = datetime.date.today()
currentTime = datetime.datetime.now()
deadLine = input('Hello, enter the deadline date for your project (mm/dd/yyyy)')
deadLineDate = datetime.datetime.strptime(deadLine, '%m/%d/%Y').date()
deadLineTime = input('insert time')
deadTime = datetime.datetime.strptime(deadLineTime, '%H:%M:%S').time()
print(deadTime)
daysLeft = deadLineDate - currentDate
print('%d days left' % daysLeft.days)
weeksLeft = math.floor(daysLeft.days/7)
newDaysLeft = daysLeft .days- 7*(math.floor(daysLeft.days/7))
print('You have %d weeks' % weeksLeft, ' and %d days left.' % newDaysLeft)
timeLeft = deadTime - currentTime
print(timeLeft.hours)
與輸入2016年2月4日15:00我收到以下錯誤:
Hello, enter the deadline date for your project (mm/dd/yyyy)02/04/2016
insert time15:00
15:00:00
5 days left
You have 0 weeks and 5 days left.
Traceback (most recent call last):
File "/Users/PYTHON/challenge04.py", line 31, in <module>
timeLeft = deadTime - currentTime
TypeError: unsupported operand type(s) for -: 'datetime.time' and 'datetime.datetime'
>>>
編輯:作爲了Jonatan說,測試代碼,而無需任何輸入:
Hello, enter the deadline date for your project (mm/dd/yyyy)
Traceback (most recent call last):
File "/Users/PYTHON/challenge04.py", line 14, in <module>
deadLineDate = datetime.datetime.strptime(deadLine, '%m/%d/%Y').date()
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/_strptime.py", line 507, in _strptime_datetime
tt, fraction = _strptime(data_string, format)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/_strptime.py", line 344, in _strptime
(data_string, format))
ValueError: time data '' does not match format '%m/%d/%Y'
謝謝。
如果用戶不需要輸入,測試代碼會簡單得多! – jonatan
@jonatan,謝謝,好主意! –