Ejemplo n.º 1
0
def git_important_days(birthday_dt, period):
    '''
    получаем список особых дней за указанный период
    birthday_dt - дата рождения
    period - период, в который нужно получить особые даты
        [0] - дата начала прериода,
        [1] - дата окончания периода
    '''
    days = {}
    _day = period[0]
    while date_compare( *(_day+period[1]) )  != -1:
        time_diff = date_diff(_day, birthday_dt)

        critical = get_critical_preiods(_day, time_diff)
        peak = get_peak_preiods(_day, time_diff)
        day = yyyy_mm_dd(_day)

        if (peak or critical):
            days.setdefault(
                day, {
                    'biorythms': day_bio(time_diff),
                    'day': yyyy_mm_dd(_day)
                }
            )
        if peak:
            days[day].update(peak)
        if critical:
            days[day].update(critical)

        _day = date_shift(*(_day + (1,)))
    return collections.OrderedDict(sorted(days.items()))
Ejemplo n.º 2
0
def get_bio_data(birthday_dt, period):
    '''
    получить данные для графиков

    birthday_dt - дата рождения
    period - период, в которым интересны данные
        [0] - дата начала прериода,
        [1] - дата окончания периода
    '''

    return [
        {
            'day': yyyy_mm_dd(
                date_shift(
                    *(birthday_dt + [t,])
                )
            ),
            'fiz': int(bio(t, PHYSICAL_PERIOD)),
            'emo': int(bio(t, EMOTIONAL_PERIOD)),
            'smart': int(bio(t, BRAIN_PERIOD)),
        }
        for t in xrange(
            date_diff(period[0], birthday_dt),
            date_diff(period[1], birthday_dt)+1
        )
    ]
Ejemplo n.º 3
0
def snct_minc(date, diff):

    diff = int(diff)
    _date = date_to_dict(date)
    sign = diff/abs(diff)
    sift = 0
    for i in xrange(min(0, diff), max(0, diff)):
        sift += num_days_in_month(_date[1], _date[2])
        _date = date_shift(
            *(_date + [sign*sift])
        )
    return yyyy_mm_dd(_date)
Ejemplo n.º 4
0
 def formatmonthname(self, theyear, themonth, withyear=True):
     with calendar.TimeEncoding(self.locale) as encoding:
         s = calendar.month_name[themonth]
         if encoding is not None:
             s = s.decode(encoding)
         if withyear and theyear != self.today.year:
             s = '%s, %s' % (s, theyear)
         prev_month_day = yyyy_mm_dd(
             date_shift(1, themonth, theyear, -1)
         )
         next_month_day = yyyy_mm_dd(
             date_shift(
                 num_days_in_month(themonth,theyear),
                 themonth, theyear, 1
             )
         )
         return (
             '<tr><th colspan="7" class="month">'
             '<a href="#" day="%s" class="get_bio_data">&larr;</a> '
             '%s'
             ' <a href="#" day="%s" class="get_bio_data">&rarr;</a>'
             '</th></tr>'
         )% (prev_month_day, s, next_month_day)
Ejemplo n.º 5
0
def get_bio_context(date_bt_tuple, cur_date):
    '''
    возвращает данные по биоритмам для:
    day_bd - дата рождения (d,m,y)
    cur_date - дата для который требуется получить данные по биоритмам
    '''
    period = month_range(cur_date)
    critical_days = git_important_days(date_bt_tuple, period)

    curday_info = {
        'biorythms': day_bio(date_diff(cur_date, date_bt_tuple))
    }
    return {
        'data': get_bio_data(date_bt_tuple, period),
        'today_info': curday_info,
        'critical_info': critical_days.get(yyyy_mm_dd(cur_date), False),
        'critical_days': critical_days
    }
Ejemplo n.º 6
0
    def get_context(self, **kwargs):
        date = self.get_date()
        if not date:
            return {}
        date_tuple = date.split('.')
        bio_context = bio_service.get_bio_context(date_tuple, self.current_date)

        bio_context['data'] = json.dumps(bio_context['data'])
        bio_context.update({'date_map':
            {k: yyyy_mm_dd(v) for k,v in day_maps(self.current_date).items()}
        })

        myCal = MyHtmlCalendar(calendar.MONDAY, 'ru_RU.UTF-8')
        myCal.current_date = self.current_date
        bio_context.update({
            'today': self.today,
            'calendar': myCal.formatmonth(self.current_date[2], self.current_date[1])
        })
        return bio_context
Ejemplo n.º 7
0
    def formatday(self, day, weekday):
        css = [self.cssclasses[weekday]]
        if (
            day == self.today.day and
            self.today.month == self.month and
            self.today.year == self.year
        ):
            css.append('today')

        if self.current_date == [day, self.month, self.year]:
            css.append('selected')

        if day == 0:
            return '<td class="noday">&nbsp;</td>'
        else:
            return (
                '<td class="%s">'
                '<a class="get_bio_data" day="%s" href="#">%d</a>'
                '</td>'
            ) % (
                ' '.join(css),
                yyyy_mm_dd((day, self.month, self.year)),
                day
            )
Ejemplo n.º 8
0
def old_style(date):
    '''
    переводит дату в старый стиль
    '''
    return yyyy_mm_dd(get_old_style_date(*(date.split('-')[::-1])))
Ejemplo n.º 9
0
def snct_dinc(date, diff):
    return yyyy_mm_dd(
        date_shift(
            *(date_to_dict(date) + [int(diff)])
        )
    )