def fit_millennium_fn(main_frame, current_period, navigation_fn): mean = PharaonicDateTime.from_time(current_period.mean_time()) if mean.year > get_millenium_max_year(): year = get_millenium_max_year() else: year = max(get_min_year_containing_jan_1(), int(mean.year // 1000) * 1000) start = PharaonicDateTime.from_ymd(year, 1, 1).to_time() end = PharaonicDateTime.from_ymd(year + 1000, 1, 1).to_time() navigation_fn(lambda tp: tp.update(start, end))
def start(self, time): pharaonic_time = PharaonicDateTime.from_time(time) return PharaonicDateTime.from_ymd( pharaonic_time.year, pharaonic_time.month, pharaonic_time.day ).to_time()
def increment_day(self, date): year, month, day = date time = PharaonicDateTime.from_ymd(year, month, day).to_time() if time < PharaonicTimeType().get_max_time( ) - PharaonicDelta.from_days(1): return PharaonicDateTime.from_time( time + PharaonicDelta.from_days(1)).to_date_tuple() return date
def fit_week_fn(main_frame, current_period, navigation_fn): mean = PharaonicDateTime.from_time(current_period.mean_time()) start = PharaonicDateTime.from_ymd(mean.year, mean.month, mean.day).to_time() weekday = PharaonicTimeType().get_day_of_week(start) start = start - PharaonicDelta.from_days(weekday) if not main_frame.week_starts_on_monday(): start = start - PharaonicDelta.from_days(1) end = start + PharaonicDelta.from_days(10) navigation_fn(lambda tp: tp.update(start, end))
def _set_valid_day(self, new_year, new_month, new_day): done = False while not done: try: date = PharaonicDateTime.from_ymd(new_year, new_month, new_day) done = True except Exception: new_day -= 1 return date.to_date_tuple()
def start(self, time): pharaonic_time = PharaonicDateTime.from_time(time) new_pharaonic = PharaonicDateTime.from_ymd(pharaonic_time.year, 1, 1) return new_pharaonic.to_time()
def start(self, time): return PharaonicDateTime.from_ymd( self._decade_start_year(PharaonicDateTime.from_time(time).year), 1, 1 ).to_time()