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 ) print('now time is', time_now) print('user wants to notify at', hours, minutes) if time_now.hour * 60 + time_now.minute < hours * 60 + minutes: print('go to next day') next_time = next_time + datetime.timedelta(days=1) return next_time