Привет, я новичок в Python и в настоящее время использую Python 3.4.1 в PyCharm.Недавно я создал проект, который вычисляет количество дней между двумя датами, но есть две проблемы:
def get_first_day():
while True:
try:
print('First Date')
day = int(input('Day:'))
month = int(input('Month:'))
year = int(input('Year:'))
print(day, '/', month, '/', year)
date = [day, month, year * 365]
get_second_day(date)
except ValueError:
print('You were supposed to enter a date.')
def get_second_day(date_1):
while True:
try:
print('Second Date')
day = int(input('Day:'))
month = int(input('Month:'))
year = int(input('Year:'))
print(day, '/', month, '/', year)
date = [day, month, year * 365]
convert_dates_and_months(date_1, date)
except ValueError:
print('You were supposed to enter a date.')
def convert_dates_and_months(date_1, date_2):
days_unfiltered = [date_1[0], date_2[0]]
months_unfiltered = [date_1[1], date_2[1]]
year = [date_1[2], date_2[2]]
date_unfiltered = zip(days_unfiltered, months_unfiltered, year)
for d, m, y in date_unfiltered:
if m in [1, 3, 5, 7, 8, 10, 12]:
a = 31
elif m in [4, 6, 9, 11]:
a = 30
elif m in [2, 0] and int(y) % 4 is 0:
a = 29
else:
a = 28
m *= a
days = list(filter(lambda x: 0 < x < (a + 1), days_unfiltered))
months = list(filter(lambda x: 0 < x < 13, months_unfiltered))
date_1 = [days[0], months[0], year[0]]
date_2 = [days[1], months[1], year[1]]
determine_date_displacement(date_1, date_2)
def determine_date_displacement(date_1, date_2):
full_dates = zip(date_1, date_2)
days = -1
for k, v in full_dates:
days += (int(v) - int(k))
if days < 0:
days *= -1
print(days)
get_first_day()
Первая проблема заключается в том, что счетчик возвращает неверное количество дней между двумя датами.Во-вторых, почему-то def get_second_day повторяется в конце.Я покажу вам, что я имею в виду:
First Date
Day:10
Month:09
Year:03
10 / 9 / 3
Second Date
Day:06
Month:06
Year:06
6 / 6 / 6
1087
Second Date
Day:
Я точно знаю, что между 10/09/03 и 06/06/06 ровно 1000 дней, но проект возвращается 1087 дней.
Если бы кто-нибудь мог объяснить, почему этот проект возвращает неправильный номер, а также почему он просит меня снова заполнить вторую дату в конце, это было бы идеально.
Так как этоМой первый вопрос, и я новичок в Python, заранее прошу прощения за любые странные фразы / плохие практики, встречающиеся в этом вопросе.