На этом шаге мы рассмотрим назначение и использование этого класса.
Класс date из модуля datetime позволяет выполнять операции над датами. Конструктор класса имеет следующий формат:
date (<Год>, <Месяц>, <День>)
Все параметры являются обязательными, В параметрах можно указать следующий диапазон значений:
>>> import datetime >>> datetime.MINYEAR, datetime.MAXYEAR (1, 9999)
Если значения выходят за диапазон, возбуждается исключение ValueError. Пример:
>>> datetime.date (2015, 4, 3)
datetime.date(2015, 4, 3)
>>> datetime.date (2015, 13, 3) # Неправильное значение для месяца Traceback (most recent call last): File "<pyshell#4>", line 1, in <module> datetime.date (2015, 13, 3) # Неправильное значение для месяца ValueError: month must be in 1..12 >>> d = datetime.date (2015, 4, 3) >>> repr(d), str(d) ('datetime.date(2015, 4, 3)', '2015-04-03')
Для создания объекта класса date также можно воспользоваться следующими методами этого класса:
>>> datetime.date.today () # Получаем текущую дату datetime.date(2017, 9, 18)
>>> import datetime, time >>> datetime.date.fromtimestamp (time.time()) # Текущая дата datetime.date(2017, 9, 18) >>> datetime.date.fromtimestamp(1321954972.0) # Дата 22-11-2011 datetime.date(2011, 11, 22)
>>> datetime.date.max.toordinal() 3652059 >>> datetime.date.fromordinal(3652059) datetime.date(9999, 12, 31) >>> datetime.date.fromordinal(1) datetime.date(1, 1, 1)
Получить результат можно с помощью следующих атрибутов:
Пример:
>>> d = datetime.date.today () # Текущая дата >>> d.year, d.month, d.day (2017, 9, 18)
Над экземплярами класса date можно производить следующие операции:
Примеры:
>>> d1 = datetime.date (2015, 4, 3) >>> d2 = datetime.date (2015, 1,1) >>> t = datetime.timedelta (days=10) >>> d1 + t, d1 - t # Прибавляем и вычитаем 10 дней (datetime.date(2015, 4, 13), datetime.date(2015, 3, 24)) >>> d1 - d2 # Разница между датами datetime.timedelta(92) >>> d1 < d2, d1 > d2, d1 <= d2, d1 >= d2 (False, True, False, True) >>> d1 == d2, d1 != d2 (False, True)
На следующем шаге мы закончим изучение этого вопроса.