Python Notes

Вычисление количества дней между датами и определение дат

Задача 1. Пользователь вводит две даты. Определить количество прошедших дней между ними.

import datetime
 
a = input('Первая дата (гггг-мм-дд): ')
b = input('Вторая дата (гггг-мм-дд): ')
a = a.split('-')
b = b.split('-')
aa = datetime.date(int(a[0]),int(a[1]),int(a[2]))
bb = datetime.date(int(b[0]),int(b[1]),int(b[2]))
cc = aa-bb
print(cc) # output days and time
dd = str(cc)
print(dd.split()[0]) # only days
Первая дата (гггг-мм-дд): 2012-04-13
Вторая дата (гггг-мм-дд): 2003-05-27
3244 days, 0:00:00
3244
Первая дата (гггг-мм-дд): 2003-05-27
Вторая дата (гггг-мм-дд): 2012-04-13
-3244 days, 0:00:00
-3244

Задача 2. Определить количество дней между датой, введенной пользователем, и сегодняшним днем.

a = input('Дата (гггг-мм-дд): ')
a = a.split('-')
aa = datetime.date(int(a[0]),int(a[1]),int(a[2]))
bb = datetime.date.today()
cc = aa-bb
dd = str(cc)
print(dd.split()[0])
Дата (гггг-мм-дд): 2013-01-01
-17

Задача 3. Определить, какая будет дата через заданные пользователем дату и количество дней от/до этой даты.

import datetime
 
a = input('Дата (гггг-мм-дд): ')
b = input('Количество дней: ')
a = a.split('-')
aa = datetime.date(int(a[0]),int(a[1]),int(a[2]))
b = int(b)
bb = datetime.timedelta(days=b)
cc = aa+bb
print(cc)
Дата (гггг-мм-дд): 2004-12-20
Количество дней: 1000
2007-09-16
>>> ==== RESTART ====
>>> 
Дата (гггг-мм-дд): 2013-01-16
Количество дней: -100
2012-10-08
>>> 

Задача 4. Определить, какая будет/была дата через заданное пользователем количество дней от сегодняшней даты.

b = input('Количество дней: ')
b = int(b)
a = datetime.date.today()
bb = datetime.timedelta(days=b)
cc = a+bb
print(cc)
Количество дней: 5
2013-01-23
>>> ===== RESTART =====
>>> 
Количество дней: -5
2013-01-13
>>>