47 lines
1.5 KiB
Python
47 lines
1.5 KiB
Python
# DRF Rack
|
|
# Библиотека классов расширений для Django REST Framework
|
|
#
|
|
# Автор: Николай В. Анохин <n.anokhin@xeaf.net>
|
|
# Все права защищены. Лицензия: MIT
|
|
|
|
"""
|
|
Описание класса DateUtils
|
|
"""
|
|
|
|
import datetime
|
|
|
|
from django.utils import timezone
|
|
|
|
|
|
class DateUtils:
|
|
"""
|
|
Реализует функции работы с датами и временем
|
|
"""
|
|
|
|
@classmethod
|
|
def now(cls) -> datetime.datetime:
|
|
"""
|
|
Возвращает текущую дату и время
|
|
"""
|
|
|
|
return timezone.now()
|
|
|
|
@classmethod
|
|
def shift_time(cls, date_time: datetime.datetime | None = None, days: int = 0, hours: int = 0, minutes: int = 0, seconds: int = 0) -> datetime.datetime:
|
|
"""
|
|
Добавляет к дате и времени заданное количество дней, часов, минут и секунд
|
|
|
|
:param date_time: Дата и время
|
|
:param days: Количество дней
|
|
:param hours: Количество часов
|
|
:param minutes: Количество минут
|
|
:param seconds: Количество секунд
|
|
|
|
:return: Дата и время с добавленным временем
|
|
"""
|
|
|
|
if date_time is None:
|
|
date_time = cls.now()
|
|
|
|
return date_time + datetime.timedelta(days=days, hours=hours, minutes=minutes, seconds=seconds)
|