我有點理解可能發生的事情。情況顯然沒有得到滿足。有點像i = 0到b,其中b等於0或null。 我希望像9-01-2016和10-31-2016這兩個日期之間的天數。所以它應該是61天。我需要幫助才能使for循環工作
# dates are easily constructed and formatted
#from datetime import datetime, timedelta
from datetime import datetime
year = 2016
left_over_pill_count = input('How many pills did you have left? ')
new_prescription = input('How many pills did you get? ')
total_pills = int(left_over_pill_count) + int(new_prescription)
daily_pill_intake = input('How many pills do you take? ')
starting_Month = input('Starting Month, Type 1 for January, 2 for February, etc.')
starting_Day = input('Starting Day; Type 1-31')
ending_Month = input('Ending Month, Type 1 for January, 2 for February, etc.')
ending_Day = input('Starting Day; Type 1-31')
# count number of days until next doctors appointment
date1 = datetime.date(datetime.strptime((str(year) + "-" + str(starting_Month) + "-" + str(starting_Day)), '%Y-%m-%d'))
date2 = datetime.date(datetime.strptime((str(year) + "-" + str(ending_Month) + "-" + str(ending_Day)), '%Y-%m-%d'))
#date_count = (date2 - date1)
#total_days = date_count
# fmt = '%Y-%m-%d %H:%M:%S'
#fmt = '%d'
#d1 = datetime.strptime(date1, fmt)
#d2 = datetime.strptime(date2, fmt)
# print (d2-d1).days * 24 * 60
for i in range(date1.month, date2.month):
if (date1.month == 1):
for j in range(date1.day, 31):
total_pills = total_pills - int(daily_pill_intake)
if (date1.month == 2):
for j in range(date1.day, 28):
total_pills = total_pills - int(daily_pill_intake)
if (date1.month == 3):
for j in range(date1.day, 31):
total_pills = total_pills - int(daily_pill_intake)
if (date1.month == 4):
for j in range(date1.day, 30):
total_pills = total_pills - int(daily_pill_intake)
if (date1.month == 5):
for j in range(date1.day, 31):
total_pills = total_pills - int(daily_pill_intake)
if (date1.month == 6):
for j in range(date1.day, 30):
total_pills = total_pills - int(daily_pill_intake)
if (date1.month == 7):
for j in range(date1.day, 31):
total_pills = total_pills - int(daily_pill_intake)
if (date1.month == 8):
for j in range(date1.day, 31):
total_pills = total_pills - int(daily_pill_intake)
if (date1.month == 9):
for j in range(date1.day, 30):
total_pills = total_pills - int(daily_pill_intake)
if (date1.month == 10):
for j in range(date1.day, 31):
total_pills = total_pills - int(daily_pill_intake)
if (date1.month == 11):
for j in range(date1.day, 30):
total_pills = total_pills - int(daily_pill_intake)
if (date1.month == 12):
for j in range(date1.day, 31):
total_pills = total_pills - int(daily_pill_intake)
#for i in range(1, int(date1.day-date2.day)):
# total_pills = total_pills - int(daily_pill_intake)
# print(total_pills)
print("Taking " + str(daily_pill_intake) + " a day, you should have " + str(total_pills) + " left.")
告訴他們放入'2016-01-02'這樣的日期,你的生活會有很大改善。 –
另外,你應該考慮[字符串格式化](http://pyformat.info),而不是簡單的連接。 –