def fit_month_fn(main_frame, current_period, navigation_fn): mean = gregorian.from_time(current_period.mean_time()) start = gregorian.from_date(mean.year, mean.month, 1).to_time() if mean.month == 12: end = gregorian.from_date(mean.year + 1, 1, 1).to_time() else: end = gregorian.from_date(mean.year, mean.month + 1, 1).to_time() navigation_fn(lambda tp: tp.update(start, end))
def fit_century_fn(main_frame, current_period, navigation_fn): mean = gregorian.from_time(current_period.mean_time()) if mean.year > get_century_max_year(): year = get_century_max_year() else: year = max(get_min_year_containing_jan_1(), int(mean.year/100)*100) start = gregorian.from_date(year, 1, 1).to_time() end = gregorian.from_date(year + 100, 1, 1).to_time() navigation_fn(lambda tp: tp.update(start, end))
def fit_century_fn(main_frame, current_period, navigation_fn): mean = gregorian.from_time(current_period.mean_time()) if mean.year > get_century_max_year(): year = get_century_max_year() else: year = max(get_min_year_containing_jan_1(), int(mean.year / 100) * 100) start = gregorian.from_date(year, 1, 1).to_time() end = gregorian.from_date(year + 100, 1, 1).to_time() navigation_fn(lambda tp: tp.update(start, end))
def convert_to_datetime(d): if isinstance(d, datetime): return Gregorian(d.year, d.month, d.day, d.hour, d.minute, d.second).to_time() elif isinstance(d, date): return gregorian.from_date(d.year, d.month, d.day).to_time() else: raise TimelineIOError("Unknown date.")
def on_down(self): def decrement_year(date): year, month, day = date if year > gregorian.from_time( GregorianTimeType().get_min_time()[0]).year: return self._set_valid_day(year - 1, month, day) return date def decrement_month(date): year, month, day = date if month > 1: return self._set_valid_day(year, month - 1, day) elif year > gregorian.from_time( GregorianTimeType().get_min_time()[0]).year: return self._set_valid_day(year - 1, 12, day) return date def decrement_day(date): year, month, day = date if day > 1: return self._set_valid_day(year, month, day - 1) elif month > 1: return self._set_valid_day(year, month - 1, 31) elif year > gregorian.from_time( GregorianTimeType().get_min_time()[0]).year: return self._set_valid_day(year - 1, 12, 31) return date if not self._current_date_is_valid(): return selection = self.date_picker.GetSelection() current_date = self.get_value() if self._insertion_point_in_region(self.region_year): new_date = decrement_year(current_date) elif self._insertion_point_in_region(self.region_month): new_date = decrement_month(current_date) else: year, month, day = current_date gregorian.from_date(year, month, day) if gregorian.from_date( year, month, day).to_time() == GregorianTimeType().get_min_time()[0]: return new_date = decrement_day(current_date) self._save_preferred_day(new_date) if current_date != new_date: self._set_new_date_and_restore_selection(new_date, selection)
def increment_day(date): year, month, day = date time = gregorian.from_date(year, month, day).to_time() if time < GregorianTimeType().get_max_time()[0] - delta_from_days( 1): return gregorian.from_time(time + delta_from_days(1)).to_date_tuple() return date
def _set_valid_day(self, new_year, new_month, new_day): done = False while not done: try: date = gregorian.from_date(new_year, new_month, new_day) done = True except Exception: new_day -= 1 return date.to_date_tuple()
def fit_week_fn(main_frame, current_period, navigation_fn): mean = gregorian.from_time(current_period.mean_time()) start = gregorian.from_date(mean.year, mean.month, mean.day).to_time() weekday = start.get_day_of_week() start = start - delta_from_days(weekday) if not main_frame.week_starts_on_monday(): start = start - delta_from_days(1) end = start + delta_from_days(7) navigation_fn(lambda tp: tp.update(start, end))
def on_down(self): def decrement_year(date): year, month, day = date if year > gregorian.from_time(GregorianTimeType().get_min_time()[0]).year: return self._set_valid_day(year - 1, month, day) return date def decrement_month(date): year, month, day = date if month > 1: return self._set_valid_day(year, month - 1, day) elif year > gregorian.from_time(GregorianTimeType().get_min_time()[0]).year: return self._set_valid_day(year - 1, 12, day) return date def decrement_day(date): year, month, day = date if day > 1: return self._set_valid_day(year, month, day - 1) elif month > 1: return self._set_valid_day(year, month - 1, 31) elif year > gregorian.from_time(GregorianTimeType().get_min_time()[0]).year: return self._set_valid_day(year - 1, 12, 31) return date if not self._current_date_is_valid(): return selection = self.date_picker.GetSelection() current_date = self.get_value() if self._insertion_point_in_region(self.region_year): new_date = decrement_year(current_date) elif self._insertion_point_in_region(self.region_month): new_date = decrement_month(current_date) else: year, month, day = current_date gregorian.from_date(year, month, day) if gregorian.from_date(year, month, day).to_time() == GregorianTimeType().get_min_time()[0]: return new_date = decrement_day(current_date) self._save_preferred_day(new_date) if current_date != new_date: self._set_new_date_and_restore_selection(new_date, selection)
def start(self, time): gregorian_time = gregorian.from_time(time) new_gregorian = gregorian.from_date(gregorian_time.year, gregorian_time.month, gregorian_time.day) return new_gregorian.to_time()
def increment_day(date): year, month, day = date time = gregorian.from_date(year, month, day).to_time() if time < GregorianTimeType().get_max_time()[0] - delta_from_days(1): return gregorian.from_time(time + delta_from_days(1)).to_date_tuple() return date
def start(self, time): gregorian_time = gregorian.from_time(time) new_gregorian = gregorian.from_date(self._decade_start_year(gregorian_time.year), 1, 1) return new_gregorian.to_time()
def start(self, time): time = gregorian.from_time(time) return gregorian.from_date(self._century_start_year(time.year), 1, 1).to_time()
def fit_day_fn(main_frame, current_period, navigation_fn): mean = gregorian.from_time(current_period.mean_time()) start = gregorian.from_date(mean.year, mean.month, mean.day).to_time() end = start + delta_from_days(1) navigation_fn(lambda tp: tp.update(start, end))
def fit_year_fn(main_frame, current_period, navigation_fn): mean = gregorian.from_time(current_period.mean_time()) start = gregorian.from_date(mean.year, 1, 1).to_time() end = gregorian.from_date(mean.year + 1, 1, 1).to_time() navigation_fn(lambda tp: tp.update(start, end))
def fit_decade_fn(main_frame, current_period, navigation_fn): mean = gregorian.from_time(current_period.mean_time()) start = gregorian.from_date(int(mean.year / 10) * 10, 1, 1).to_time() end = gregorian.from_date(int(mean.year / 10) * 10 + 10, 1, 1).to_time() navigation_fn(lambda tp: tp.update(start, end))
def fit_decade_fn(main_frame, current_period, navigation_fn): mean = gregorian.from_time(current_period.mean_time()) start = gregorian.from_date(int(mean.year/10)*10, 1, 1).to_time() end = gregorian.from_date(int(mean.year/10)*10+10, 1, 1).to_time() navigation_fn(lambda tp: tp.update(start, end))
def start(self, time): gregorian_time = gregorian.from_time(time) new_gregorian = gregorian.from_date( self._decade_start_year(gregorian_time.year), 1, 1) return new_gregorian.to_time()