26 lines
702 B
Python
26 lines
702 B
Python
import datetime
|
|
import zoneinfo
|
|
|
|
from helpers.models import User
|
|
|
|
|
|
def now():
|
|
today = datetime.datetime.now() + datetime.timedelta(hours=3)
|
|
return today
|
|
|
|
|
|
def get_next_daily_notify_time(user: User, time_now: datetime.datetime | None = None) -> datetime.datetime:
|
|
if time_now is None:
|
|
time_now = now()
|
|
hours, minutes = map(int, user.daily_notify_time.split(":"))
|
|
next_time = datetime.datetime(
|
|
year=time_now.year,
|
|
month=time_now.month,
|
|
day=time_now.day,
|
|
hour=hours,
|
|
minute=minutes
|
|
)
|
|
if time_now.hour * 60 * time_now.minute < hours * 60 + minutes:
|
|
next_time = next_time + datetime.timedelta(days=1)
|
|
return next_time
|