示例#1
0
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))
示例#2
0
 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()
示例#3
0
 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
示例#4
0
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))
示例#5
0
 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()
示例#6
0
 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()
示例#7
0
 def start(self, time):
     return PharaonicDateTime.from_ymd(
         self._decade_start_year(PharaonicDateTime.from_time(time).year),
         1,
         1
     ).to_time()