コード例 #1
0
ファイル: timetype.py プロジェクト: ncqgm/gnumed
 def start(self, time):
     q = self.get_quarter(time)
     if q == 0:
         m = 13
     else:
         m = (q - 1) * 3 + 1
     return BosparanianDateTime.from_ymd(BosparanianDateTime.from_time(time).year, m, 1).to_time()
コード例 #2
0
def move_period_num_months(period, num):
    try:
        delta = num
        years = abs(delta) / 13
        bosparanian_start = BosparanianDateTime.from_time(period.start_time)
        bosparanian_end = BosparanianDateTime.from_time(period.end_time)
        if num < 0:
            years = -years
        delta = delta - 13 * years
        if delta < 0:
            start_month = bosparanian_start.month + 13 + delta
            end_month = bosparanian_end.month + 13 + delta
            if start_month > 13:
                start_month -= 13
                end_month -= 13
            if start_month > bosparanian_start.month:
                years -= 1
        else:
            start_month = bosparanian_start.month + delta
            end_month = bosparanian_start.month + delta
            if start_month > 13:
                start_month -= 13
                end_month -= 13
                years += 1
        start_year = bosparanian_start.year + years
        end_year = bosparanian_start.year + years
        start_time = bosparanian_start.replace(year=start_year,
                                               month=start_month)
        end_time = bosparanian_end.replace(year=end_year, month=end_month)
        return TimePeriod(start_time.to_time(), end_time.to_time())
    except ValueError:
        return None
コード例 #3
0
 def navigate(tp):
     start = BosparanianDateTime.from_time(curret_period.start_time)
     end = BosparanianDateTime.from_time(curret_period.end_time)
     start_months = start.year * 13 + start.month
     end_months = end.year * 13 + end.month
     month_diff = end_months - start_months
     month_delta = month_diff * direction
     new_start_year, new_start_month = _months_to_year_and_month(
         start_months + month_delta)
     new_end_year, new_end_month = _months_to_year_and_month(end_months +
                                                             month_delta)
     try:
         new_start = start.replace(year=new_start_year,
                                   month=new_start_month)
         new_end = end.replace(year=new_end_year, month=new_end_month)
         start = new_start.to_time()
         end = new_end.to_time()
         if end > BosparanianTimeType().get_max_time():
             raise ValueError()
         if start < BosparanianTimeType().get_min_time():
             raise ValueError()
     except ValueError:
         if direction < 0:
             raise TimeOutOfRangeLeftError()
         else:
             raise TimeOutOfRangeRightError()
     return tp.update(start, end)
コード例 #4
0
ファイル: timetype.py プロジェクト: ncqgm/gnumed
def move_period_num_months(period, num):
    try:
        delta = num
        years = abs(delta) / 13
        bosparanian_start = BosparanianDateTime.from_time(period.start_time)
        bosparanian_end = BosparanianDateTime.from_time(period.end_time)
        if num < 0:
            years = -years
        delta = delta - 13 * years
        if delta < 0:
            start_month = bosparanian_start.month + 13 + delta
            end_month = bosparanian_end.month + 13 + delta
            if start_month > 13:
                start_month -= 13
                end_month -= 13
            if start_month > bosparanian_start.month:
                years -= 1
        else:
            start_month = bosparanian_start.month + delta
            end_month = bosparanian_start.month + delta
            if start_month > 13:
                start_month -= 13
                end_month -= 13
                years += 1
        start_year = bosparanian_start.year + years
        end_year = bosparanian_start.year + years
        start_time = bosparanian_start.replace(year=start_year, month=start_month)
        end_time = bosparanian_end.replace(year=end_year, month=end_month)
        return TimePeriod(start_time.to_time(), end_time.to_time())
    except ValueError:
        return None
コード例 #5
0
def fit_decade_fn(main_frame, current_period, navigation_fn):
    mean = BosparanianDateTime.from_time(current_period.mean_time())
    start = BosparanianDateTime.from_ymd(int(mean.year / 10) * 10, 1,
                                         1).to_time()
    end = BosparanianDateTime.from_ymd(int(mean.year / 10) * 10 + 10, 1,
                                       1).to_time()
    navigation_fn(lambda tp: tp.update(start, end))
コード例 #6
0
 def set_value(self, time):
     if time is None:
         time = self.now_fn()
     self.date_picker.set_value(
         BosparanianDateTime.from_time(time).to_date_tuple())
     self.time_picker.set_value(
         BosparanianDateTime.from_time(time).to_time_tuple())
コード例 #7
0
 def start(self, time):
     q = self.get_quarter(time)
     if q == 0:
         m = 13
     else:
         m = (q - 1) * 3 + 1
     return BosparanianDateTime.from_ymd(
         BosparanianDateTime.from_time(time).year, m, 1).to_time()
コード例 #8
0
 def increment_day(date):
     year, month, day = date
     time = BosparanianDateTime.from_ymd(year, month, day).to_time()
     if time < BosparanianTimeType().get_max_time(
     ) - BosparanianDelta.from_days(1):
         return BosparanianDateTime.from_time(
             time + BosparanianDelta.from_days(1)).to_date_tuple()
     return date
コード例 #9
0
ファイル: timetype.py プロジェクト: ncqgm/gnumed
def _whole_number_of_months(period):
    start, end = BosparanianDateTime.from_time(period.start_time), BosparanianDateTime.from_time(period.end_time)
    start_months = start.year * 13 + start.month
    end_months = end.year * 13 + end.month
    month_diff = end_months - start_months
    return (start.is_first_of_month() and
            end.is_first_of_month() and
            month_diff > 0)
コード例 #10
0
def _whole_number_of_months(period):
    start, end = BosparanianDateTime.from_time(
        period.start_time), BosparanianDateTime.from_time(period.end_time)
    start_months = start.year * 13 + start.month
    end_months = end.year * 13 + end.month
    month_diff = end_months - start_months
    return (start.is_first_of_month() and end.is_first_of_month()
            and month_diff > 0)
コード例 #11
0
ファイル: timetype.py プロジェクト: ncqgm/gnumed
def fit_month_fn(main_frame, current_period, navigation_fn):
    mean = BosparanianDateTime.from_time(current_period.mean_time())
    start = BosparanianDateTime.from_ymd(mean.year, mean.month, 1).to_time()
    if mean.month == 13:
        end = BosparanianDateTime.from_ymd(mean.year + 1, 1, 1).to_time()
    else:
        end = BosparanianDateTime.from_ymd(mean.year, mean.month + 1, 1).to_time()
    navigation_fn(lambda tp: tp.update(start, end))
コード例 #12
0
ファイル: timetype.py プロジェクト: ncqgm/gnumed
 def label(self, time, major=False):
     if major:
         first_weekday = self.start(time)
         next_first_weekday = self.increment(first_weekday)
         last_weekday = next_first_weekday - BosparanianDelta.from_days(1)
         range_string = self._time_range_string(first_weekday, last_weekday)
         return (_("Week") + " %s (%s)") % (BosparanianDateTime.from_time(time).week_number, range_string)
     return _("Week") + " %s" % BosparanianDateTime.from_time(time).week_number
コード例 #13
0
ファイル: timetype.py プロジェクト: ncqgm/gnumed
def fit_week_fn(main_frame, current_period, navigation_fn):
    mean = BosparanianDateTime.from_time(current_period.mean_time())
    start = BosparanianDateTime.from_ymd(mean.year, mean.month, mean.day).to_time()
    weekday = BosparanianTimeType().get_day_of_week(start)
    start = start - BosparanianDelta.from_days(weekday)
    if not main_frame.week_starts_on_monday():
        start = start - BosparanianDelta.from_days(1)
    end = start + BosparanianDelta.from_days(7)
    navigation_fn(lambda tp: tp.update(start, end))
コード例 #14
0
ファイル: timetype.py プロジェクト: ncqgm/gnumed
def fit_century_fn(main_frame, current_period, navigation_fn):
    mean = BosparanianDateTime.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_praios_1(), int(mean.year / 100) * 100)
    start = BosparanianDateTime.from_ymd(year, 1, 1).to_time()
    end = BosparanianDateTime.from_ymd(year + 100, 1, 1).to_time()
    navigation_fn(lambda tp: tp.update(start, end))
コード例 #15
0
def fit_month_fn(main_frame, current_period, navigation_fn):
    mean = BosparanianDateTime.from_time(current_period.mean_time())
    start = BosparanianDateTime.from_ymd(mean.year, mean.month, 1).to_time()
    if mean.month == 13:
        end = BosparanianDateTime.from_ymd(mean.year + 1, 1, 1).to_time()
    else:
        end = BosparanianDateTime.from_ymd(mean.year, mean.month + 1,
                                           1).to_time()
    navigation_fn(lambda tp: tp.update(start, end))
コード例 #16
0
 def label(self, time, major=False):
     if major:
         first_weekday = self.start(time)
         next_first_weekday = self.increment(first_weekday)
         last_weekday = next_first_weekday - BosparanianDelta.from_days(1)
         range_string = self._time_range_string(first_weekday, last_weekday)
         return (_("Week") + " %s (%s)") % (
             BosparanianDateTime.from_time(time).week_number, range_string)
     return _(
         "Week") + " %s" % BosparanianDateTime.from_time(time).week_number
コード例 #17
0
 def label(self, time, major=False):
     day_of_week = BosparanianTimeType().get_day_of_week(time)
     if major:
         time = BosparanianDateTime.from_time(time)
         return "%s %s %s %s" % (
             bosp_abbreviated_name_of_weekday(day_of_week), time.day,
             bosp_abbreviated_name_of_month(
                 time.month), format_year(time.year))
     return (bosp_abbreviated_name_of_weekday(day_of_week) +
             " %s" % BosparanianDateTime.from_time(time).day)
コード例 #18
0
def fit_century_fn(main_frame, current_period, navigation_fn):
    mean = BosparanianDateTime.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_praios_1(),
                   int(mean.year / 100) * 100)
    start = BosparanianDateTime.from_ymd(year, 1, 1).to_time()
    end = BosparanianDateTime.from_ymd(year + 100, 1, 1).to_time()
    navigation_fn(lambda tp: tp.update(start, end))
コード例 #19
0
ファイル: timetype.py プロジェクト: ncqgm/gnumed
def move_period_num_years(period, num):
    try:
        delta = num
        start_year = BosparanianDateTime.from_time(period.start_time).year
        end_year = BosparanianDateTime.from_time(period.end_time).year
        start_time = BosparanianDateTime.from_time(period.start_time).replace(year=start_year + delta)
        end_time = BosparanianDateTime.from_time(period.end_time).replace(year=end_year + delta)
        return TimePeriod(start_time.to_time(), end_time.to_time())
    except ValueError:
        return None
コード例 #20
0
def fit_week_fn(main_frame, current_period, navigation_fn):
    mean = BosparanianDateTime.from_time(current_period.mean_time())
    start = BosparanianDateTime.from_ymd(mean.year, mean.month,
                                         mean.day).to_time()
    weekday = BosparanianTimeType().get_day_of_week(start)
    start = start - BosparanianDelta.from_days(weekday)
    if not main_frame.week_starts_on_monday():
        start = start - BosparanianDelta.from_days(1)
    end = start + BosparanianDelta.from_days(7)
    navigation_fn(lambda tp: tp.update(start, end))
コード例 #21
0
ファイル: timetype.py プロジェクト: ncqgm/gnumed
 def label(self, time, major=False):
     day_of_week = BosparanianTimeType().get_day_of_week(time)
     if major:
         time = BosparanianDateTime.from_time(time)
         return "%s %s %s %s" % (bosp_abbreviated_name_of_weekday(day_of_week),
                                 time.day,
                                 bosp_abbreviated_name_of_month(time.month),
                                 format_year(time.year))
     return (bosp_abbreviated_name_of_weekday(day_of_week) +
             " %s" % BosparanianDateTime.from_time(time).day)
コード例 #22
0
def move_period_num_years(period, num):
    try:
        delta = num
        start_year = BosparanianDateTime.from_time(period.start_time).year
        end_year = BosparanianDateTime.from_time(period.end_time).year
        start_time = BosparanianDateTime.from_time(
            period.start_time).replace(year=start_year + delta)
        end_time = BosparanianDateTime.from_time(
            period.end_time).replace(year=end_year + delta)
        return TimePeriod(start_time.to_time(), end_time.to_time())
    except ValueError:
        return None
コード例 #23
0
    def on_down(self):
        def decrement_year(date):
            year, month, day = date
            if year > BosparanianDateTime.from_time(
                    BosparanianTimeType().get_min_time()).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 > BosparanianDateTime.from_time(
                    BosparanianTimeType().get_min_time()).year:
                return self._set_valid_day(year - 1, 13, 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, 30)
            elif year > BosparanianDateTime.from_time(
                    BosparanianTimeType().get_min_time()).year:
                return self._set_valid_day(year - 1, 13, 5)
            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
            BosparanianDateTime.from_ymd(year, month, day)
            if BosparanianDateTime.from_ymd(
                    year, month,
                    day).to_time() == BosparanianTimeType().get_min_time():
                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)
        self._on_change()
コード例 #24
0
ファイル: timetype.py プロジェクト: ncqgm/gnumed
 def label(self, time, major=False):
     time = BosparanianDateTime.from_time(time)
     if major:
         return "%s %s %s" % (time.day,
                              bosp_abbreviated_name_of_month(time.month),
                              format_year(time.year))
     return str(time.day)
コード例 #25
0
ファイル: timepicker.py プロジェクト: ncqgm/gnumed
 def decrement_month(date):
     year, month, day = date
     if month > 1:
         return self._set_valid_day(year, month - 1, day)
     elif year > BosparanianDateTime.from_time(BosparanianTimeType().get_min_time()).year:
         return self._set_valid_day(year - 1, 13, day)
     return date
コード例 #26
0
ファイル: timepicker.py プロジェクト: ncqgm/gnumed
 def on_up(self):
     max_year = BosparanianDateTime.from_time(BosparanianTimeType().get_max_time()).year
     def increment_year(date):
         year, month, day = date
         if year < max_year - 1:
             return self._set_valid_day(year + 1, month, day)
         return date
     def increment_month(date):
         year, month, day = date
         if month < 13:
             return self._set_valid_day(year, month + 1, day)
         elif year < max_year - 1:
             return self._set_valid_day(year + 1, 1, day)
         return date
     def increment_day(date):
         year, month, day = date
         time = BosparanianDateTime.from_ymd(year, month, day).to_time()
         if time < BosparanianTimeType().get_max_time() - BosparanianDelta.from_days(1):
             return BosparanianDateTime.from_time(time + BosparanianDelta.from_days(1)).to_date_tuple()
         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 = increment_year(current_date)
     elif self._insertion_point_in_region(self.region_month):
         new_date = increment_month(current_date)
     else:
         new_date = increment_day(current_date)
         self._save_preferred_day(new_date)
     if current_date != new_date:
         self._set_new_date_and_restore_selection(new_date, selection)
     self._on_change()
コード例 #27
0
 def label(self, time, major=False):
     time = BosparanianDateTime.from_time(time)
     if major:
         return "%s %s %s: %s:%s" % (
             time.day, bosp_abbreviated_name_of_month(time.month),
             format_year(time.year), time.hour, time.minute)
     return str(time.minute)
コード例 #28
0
 def get_value(self):
     if self.time_picker.IsShown():
         hour, minute, second = self.time_picker.get_value()
     else:
         hour, minute, second = (0, 0, 0)
     year, month, day = self.date_picker.get_value()
     return BosparanianDateTime(year, month, day, hour, minute,
                                second).to_time()
コード例 #29
0
 def decrement_month(date):
     year, month, day = date
     if month > 1:
         return self._set_valid_day(year, month - 1, day)
     elif year > BosparanianDateTime.from_time(
             BosparanianTimeType().get_min_time()).year:
         return self._set_valid_day(year - 1, 13, day)
     return date
コード例 #30
0
 def label(self, time, major=False):
     time = BosparanianDateTime.from_time(time)
     if major:
         return "%s %s" % (bosp_name_of_month(
             time.month), format_year(time.year))
     if time.month == 13:
         return bosp_abbreviated_name_of_month(time.month)
     return bosp_name_of_month(time.month)
コード例 #31
0
 def _time_range_string(self, start, end):
     start = BosparanianDateTime.from_time(start)
     end = BosparanianDateTime.from_time(end)
     if start.year == end.year:
         if start.month == end.month:
             return "%s-%s %s %s" % (start.day, end.day,
                                     bosp_abbreviated_name_of_month(
                                         start.month),
                                     format_year(start.year))
         return "%s %s-%s %s %s" % (
             start.day, bosp_abbreviated_name_of_month(start.month),
             end.day, bosp_abbreviated_name_of_month(
                 end.month), format_year(start.year))
     return "%s %s %s-%s %s %s" % (
         start.day, bosp_abbreviated_name_of_month(
             start.month), format_year(start.year), end.day,
         bosp_abbreviated_name_of_month(end.month), format_year(end.year))
コード例 #32
0
ファイル: timepicker.py プロジェクト: ncqgm/gnumed
 def _set_valid_day(self, new_year, new_month, new_day):
     done = False
     while not done:
         try:
             date = BosparanianDateTime.from_ymd(new_year, new_month, new_day)
             done = True
         except Exception:
             new_day -= 1
     return date.to_date_tuple()
コード例 #33
0
ファイル: timetype.py プロジェクト: ncqgm/gnumed
 def label(self, time, major=False):
     if major:
         # TODO: This only works for English. Possible to localize?
         time = BosparanianDateTime.from_time(time)
         start_year = self._century_start_year(time.year)
         century = (start_year + 100) / 100
         if century <= 0:
             century -= 1
         return str(century) + " century BF"
     return ""
コード例 #34
0
ファイル: timetype.py プロジェクト: ncqgm/gnumed
 def _time_range_string(self, start, end):
     start = BosparanianDateTime.from_time(start)
     end = BosparanianDateTime.from_time(end)
     if start.year == end.year:
         if start.month == end.month:
             return "%s-%s %s %s" % (start.day, end.day,
                                     bosp_abbreviated_name_of_month(start.month),
                                     format_year(start.year))
         return "%s %s-%s %s %s" % (start.day,
                                    bosp_abbreviated_name_of_month(start.month),
                                    end.day,
                                    bosp_abbreviated_name_of_month(end.month),
                                    format_year(start.year))
     return "%s %s %s-%s %s %s" % (start.day,
                                   bosp_abbreviated_name_of_month(start.month),
                                   format_year(start.year),
                                   end.day,
                                   bosp_abbreviated_name_of_month(end.month),
                                   format_year(end.year))
コード例 #35
0
ファイル: timetype.py プロジェクト: ncqgm/gnumed
 def navigate(tp):
     year_delta = direction * _calculate_year_diff(curret_period)
     bosparanian_start = BosparanianDateTime.from_time(curret_period.start_time)
     bosparanian_end = BosparanianDateTime.from_time(curret_period.end_time)
     new_start_year = bosparanian_start.year + year_delta
     new_end_year = bosparanian_end.year + year_delta
     try:
         new_start = bosparanian_start.replace(year=new_start_year).to_time()
         new_end = bosparanian_end.replace(year=new_end_year).to_time()
         if new_end > BosparanianTimeType().get_max_time():
             raise ValueError()
         if new_start < BosparanianTimeType().get_min_time():
             raise ValueError()
     except ValueError:
         if direction < 0:
             raise TimeOutOfRangeLeftError()
         else:
             raise TimeOutOfRangeRightError()
     return tp.update(new_start, new_end)
コード例 #36
0
 def label(self, time, major=False):
     if major:
         # TODO: This only works for English. Possible to localize?
         time = BosparanianDateTime.from_time(time)
         start_year = self._century_start_year(time.year)
         century = (start_year + 100) / 100
         if century <= 0:
             century -= 1
         return str(century) + " century BF"
     return ""
コード例 #37
0
 def _set_valid_day(self, new_year, new_month, new_day):
     done = False
     while not done:
         try:
             date = BosparanianDateTime.from_ymd(new_year, new_month,
                                                 new_day)
             done = True
         except Exception:
             new_day -= 1
     return date.to_date_tuple()
コード例 #38
0
 def navigate(tp):
     year_delta = direction * _calculate_year_diff(curret_period)
     bosparanian_start = BosparanianDateTime.from_time(
         curret_period.start_time)
     bosparanian_end = BosparanianDateTime.from_time(curret_period.end_time)
     new_start_year = bosparanian_start.year + year_delta
     new_end_year = bosparanian_end.year + year_delta
     try:
         new_start = bosparanian_start.replace(
             year=new_start_year).to_time()
         new_end = bosparanian_end.replace(year=new_end_year).to_time()
         if new_end > BosparanianTimeType().get_max_time():
             raise ValueError()
         if new_start < BosparanianTimeType().get_min_time():
             raise ValueError()
     except ValueError:
         if direction < 0:
             raise TimeOutOfRangeLeftError()
         else:
             raise TimeOutOfRangeRightError()
     return tp.update(new_start, new_end)
コード例 #39
0
ファイル: timepicker.py プロジェクト: ncqgm/gnumed
 def on_down(self):
     def decrement_year(date):
         year, month, day = date
         if year > BosparanianDateTime.from_time(BosparanianTimeType().get_min_time()).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 > BosparanianDateTime.from_time(BosparanianTimeType().get_min_time()).year:
             return self._set_valid_day(year - 1, 13, 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, 30)
         elif year > BosparanianDateTime.from_time(BosparanianTimeType().get_min_time()).year:
             return self._set_valid_day(year - 1, 13, 5)
         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
         BosparanianDateTime.from_ymd(year, month, day)
         if BosparanianDateTime.from_ymd(year, month, day).to_time() == BosparanianTimeType().get_min_time():
             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)
     self._on_change()
コード例 #40
0
ファイル: timetype.py プロジェクト: ncqgm/gnumed
 def navigate(tp):
     start = BosparanianDateTime.from_time(curret_period.start_time)
     end = BosparanianDateTime.from_time(curret_period.end_time)
     start_months = start.year * 13 + start.month
     end_months = end.year * 13 + end.month
     month_diff = end_months - start_months
     month_delta = month_diff * direction
     new_start_year, new_start_month = _months_to_year_and_month(start_months + month_delta)
     new_end_year, new_end_month = _months_to_year_and_month(end_months + month_delta)
     try:
         new_start = start.replace(year=new_start_year, month=new_start_month)
         new_end = end.replace(year=new_end_year, month=new_end_month)
         start = new_start.to_time()
         end = new_end.to_time()
         if end > BosparanianTimeType().get_max_time():
             raise ValueError()
         if start < BosparanianTimeType().get_min_time():
             raise ValueError()
     except ValueError:
         if direction < 0:
             raise TimeOutOfRangeLeftError()
         else:
             raise TimeOutOfRangeRightError()
     return tp.update(start, end)
コード例 #41
0
 def parse_time(self, time_string):
     match = re.search(r"^(-?\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)$",
                       time_string)
     if match:
         year = int(match.group(1))
         month = int(match.group(2))
         day = int(match.group(3))
         hour = int(match.group(4))
         minute = int(match.group(5))
         second = int(match.group(6))
         try:
             return BosparanianDateTime(year, month, day, hour, minute,
                                        second).to_time()
         except ValueError:
             raise ValueError("Invalid time, time string = '%s'" %
                              time_string)
     else:
         raise ValueError("Time not on correct format = '%s'" % time_string)
コード例 #42
0
    def on_up(self):
        max_year = BosparanianDateTime.from_time(
            BosparanianTimeType().get_max_time()).year

        def increment_year(date):
            year, month, day = date
            if year < max_year - 1:
                return self._set_valid_day(year + 1, month, day)
            return date

        def increment_month(date):
            year, month, day = date
            if month < 13:
                return self._set_valid_day(year, month + 1, day)
            elif year < max_year - 1:
                return self._set_valid_day(year + 1, 1, day)
            return date

        def increment_day(date):
            year, month, day = date
            time = BosparanianDateTime.from_ymd(year, month, day).to_time()
            if time < BosparanianTimeType().get_max_time(
            ) - BosparanianDelta.from_days(1):
                return BosparanianDateTime.from_time(
                    time + BosparanianDelta.from_days(1)).to_date_tuple()
            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 = increment_year(current_date)
        elif self._insertion_point_in_region(self.region_month):
            new_date = increment_month(current_date)
        else:
            new_date = increment_day(current_date)
            self._save_preferred_day(new_date)
        if current_date != new_date:
            self._set_new_date_and_restore_selection(new_date, selection)
        self._on_change()
コード例 #43
0
ファイル: timetype.py プロジェクト: ncqgm/gnumed
 def label(self, time, major=False):
     time = BosparanianDateTime.from_time(time)
     return format_decade(self._decade_start_year(time.year))
コード例 #44
0
ファイル: timetype.py プロジェクト: ncqgm/gnumed
 def start(self, time):
     bosparanian_time = BosparanianDateTime.from_time(time)
     new_bosparanian = BosparanianDateTime.from_ymd(self._decade_start_year(bosparanian_time.year), 1, 1)
     return new_bosparanian.to_time()
コード例 #45
0
ファイル: timetype.py プロジェクト: ncqgm/gnumed
 def label(self, time, major=False):
     return format_year(BosparanianDateTime.from_time(time).year)
コード例 #46
0
ファイル: timetype.py プロジェクト: ncqgm/gnumed
 def increment(self, time):
     bosparanian_time = BosparanianDateTime.from_time(time)
     return bosparanian_time.replace(year=bosparanian_time.year + 1).to_time()
コード例 #47
0
 def increment(self, time):
     bosparanian_time = BosparanianDateTime.from_time(time)
     return bosparanian_time.replace(year=bosparanian_time.year +
                                     1).to_time()
コード例 #48
0
 def _ensure_within_allowed_period(self, date):
     year, month, day = date
     time = BosparanianDateTime(year, month, day, 0, 0, 0).to_time()
     if (time >= BosparanianTimeType().get_max_time()
             or time < BosparanianTimeType().get_min_time()):
         raise ValueError()
コード例 #49
0
ファイル: timetype.py プロジェクト: ncqgm/gnumed
 def time_string(self, time):
     return "%d-%02d-%02d %02d:%02d:%02d" % BosparanianDateTime.from_time(time).to_tuple()
コード例 #50
0
ファイル: timetype.py プロジェクト: ncqgm/gnumed
 def start(self, time):
     bosparanian_time = BosparanianDateTime.from_time(time)
     new_bosparanian = BosparanianDateTime.from_ymd(bosparanian_time.year, bosparanian_time.month, bosparanian_time.day)
     return new_bosparanian.to_time()
コード例 #51
0
 def get_quarter(self, time):
     m = BosparanianDateTime.from_time(time).month
     if m == 13:
         return 0
     return (m - 1) // 3 + 1
コード例 #52
0
 def increment(self, time):
     days_in_month = BosparanianDateTime.from_time(time).days_in_month()
     return time + BosparanianDelta.from_days(days_in_month)
コード例 #53
0
ファイル: timepicker.py プロジェクト: ncqgm/gnumed
 def increment_day(date):
     year, month, day = date
     time = BosparanianDateTime.from_ymd(year, month, day).to_time()
     if time < BosparanianTimeType().get_max_time() - BosparanianDelta.from_days(1):
         return BosparanianDateTime.from_time(time + BosparanianDelta.from_days(1)).to_date_tuple()
     return date
コード例 #54
0
ファイル: timetype.py プロジェクト: ncqgm/gnumed
 def increment(self, time):
     time = BosparanianDateTime.from_time(time)
     return time.replace(year=time.year + 100).to_time()
コード例 #55
0
ファイル: timetype.py プロジェクト: ncqgm/gnumed
 def start(self, time):
     time = BosparanianDateTime.from_time(time)
     return BosparanianDateTime.from_ymd(self._century_start_year(time.year), 1, 1).to_time()
コード例 #56
0
 def start(self, time):
     bosparanian_time = BosparanianDateTime.from_time(time)
     new_bosparanian = BosparanianDateTime.from_ymd(bosparanian_time.year,
                                                    bosparanian_time.month,
                                                    bosparanian_time.day)
     return new_bosparanian.to_time()
コード例 #57
0
ファイル: timetype.py プロジェクト: ncqgm/gnumed
 def get_quarter(self, time):
     m = BosparanianDateTime.from_time(time).month
     if m == 13:
         return 0
     return (m - 1) // 3 + 1
コード例 #58
0
 def label(self, time, major=False):
     return format_year(BosparanianDateTime.from_time(time).year)
コード例 #59
0
ファイル: timetype.py プロジェクト: ncqgm/gnumed
 def increment(self, time):
     days_in_month = BosparanianDateTime.from_time(time).days_in_month()
     return time + BosparanianDelta.from_days(days_in_month)
コード例 #60
0
ファイル: timepicker.py プロジェクト: ncqgm/gnumed
 def set_value(self, time):
     if time is None:
         time = self.now_fn()
     self.date_picker.set_value(BosparanianDateTime.from_time(time).to_date_tuple())
     self.time_picker.set_value(BosparanianDateTime.from_time(time).to_time_tuple())