Exemple #1
0
    def nearest_snack(self, snack_datetime):
        if not self.mean_feeding_hours:
            return None

        base_date = snack_datetime.date()
        if snack_datetime.hour < 3:
            base_date = base_date - Timedelta(days=1)

        mm = Datetime.combine(
            base_date,
            self.mean_feeding_hours.breakfast) + Timedelta(minutes=180)
        af = Datetime.combine(
            base_date, self.mean_feeding_hours.lunch) + Timedelta(minutes=180)
        bb = Datetime.combine(
            base_date, self.mean_feeding_hours.dinner) + Timedelta(minutes=180)

        result = {
            mm: self.MID_MORNING_SNACK,
            af: self.AFTERNOON_SNACK,
            bb: self.BEFORE_BED_SNACK
        }

        nearest = Datetime.nearest_datetime_static(snack_datetime,
                                                   [mm, af, bb])
        return result[nearest]
Exemple #2
0
    def nearest_day_time(self, base_date):
        if not self.mean_feeding_hours:
            return None

        if base_date.hour < 3:
            base_date = base_date - Timedelta(days=1)

        base_date = base_date.date()

        br = Datetime.combine(base_date, self.mean_feeding_hours.breakfast)
        lu = Datetime.combine(base_date, self.mean_feeding_hours.lunch)
        di = Datetime.combine(base_date, self.mean_feeding_hours.dinner)
        mm = Datetime.combine(
            base_date,
            self.mean_feeding_hours.breakfast) + Timedelta(minutes=180)
        af = Datetime.combine(
            base_date, self.mean_feeding_hours.lunch) + Timedelta(minutes=180)
        bb = Datetime.combine(
            base_date, self.mean_feeding_hours.dinner) + Timedelta(minutes=180)

        result = {
            br: self.BREAKFAST,
            lu: self.LUNCH,
            di: self.DINNER,
            mm: self.MID_MORNING_SNACK,
            af: self.AFTERNOON_SNACK,
            bb: self.BEFORE_BED_SNACK,
        }

        nearest = Datetime.nearest_datetime_static(base_date,
                                                   [br, lu, di, mm, af, bb])
        return result[nearest]
Exemple #3
0
    def nearest_meal(self, meal_datetime):
        if not self.mean_feeding_hours:
            return None

        base_date = meal_datetime.date()
        if meal_datetime.hour < 3:
            base_date = base_date - Timedelta(days=1)

        br = Datetime.combine(base_date, self.mean_feeding_hours.breakfast)
        lu = Datetime.combine(base_date, self.mean_feeding_hours.lunch)
        di = Datetime.combine(base_date, self.mean_feeding_hours.dinner)

        result = {br: self.BREAKFAST, lu: self.LUNCH, di: self.DINNER}

        nearest = Datetime.nearest_datetime_static(meal_datetime, [br, lu, di])
        return result[nearest]