Напоминалки: конвертация между часовыми поясами (reminders.py)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -63,3 +63,17 @@ def compute_next_occurrence(anchor: datetime, recurrence: str, after: datetime)
|
||||
day = _clamp_day(year, anchor.month, anchor.day)
|
||||
candidate = candidate.replace(year=year, day=day)
|
||||
return candidate
|
||||
|
||||
|
||||
def server_utc_offset_hours() -> float:
|
||||
"""Собственное смещение сервера от UTC в часах. Часовой пояс сервера нигде
|
||||
явно не настроен (может быть любым в зависимости от хостинга), поэтому
|
||||
вычисляется на лету через локальную таймзону ОС."""
|
||||
offset = datetime.now().astimezone().utcoffset()
|
||||
return offset.total_seconds() / 3600 if offset else 0.0
|
||||
|
||||
|
||||
def convert_time(dt: datetime, from_offset: float, to_offset: float) -> datetime:
|
||||
"""Переводит наивный datetime из одного часового пояса (смещение от UTC
|
||||
в часах) в другой — просто сдвигает время на разницу смещений."""
|
||||
return dt + timedelta(hours=(to_offset - from_offset))
|
||||
|
||||
Reference in New Issue
Block a user