Exemple #1
0
    def setDayOfWeekInYear(self, offset, day):
        # Set to first day in year
        self.mMonth = 1
        self.mDay = 1

        # Determine first weekday in year
        first_day = self.getDayOfWeek()

        if offset > 0:
            cycle = (offset - 1) * 7 + day
            cycle -= first_day
            if first_day > day:
                cycle += 7
            self.mDay = cycle + 1
        elif offset < 0:
            first_day += 365 + [1, 0][not utils.isLeapYear(self.mYear)] - 1
            first_day %= 7

            cycle = (-offset - 1) * 7 - day
            cycle += first_day
            if day > first_day:
                cycle += 7
            self.mDay = 365 + [1, 0][not utils.isLeapYear(self.mYear)] - cycle

        self.normalise()
Exemple #2
0
    def setDayOfWeekInYear(self, offset, day):
        # Set to first day in year
        self.mMonth = 1
        self.mDay = 1

        # Determine first weekday in year
        first_day = self.getDayOfWeek()

        if offset > 0:
            cycle = (offset - 1) * 7 + day
            cycle -= first_day
            if first_day > day:
                cycle += 7
            self.mDay = cycle + 1
        elif offset < 0:
            first_day += 365 + [1, 0][not utils.isLeapYear(self.mYear)] - 1
            first_day %= 7

            cycle = (-offset - 1) * 7 - day
            cycle += first_day
            if day > first_day:
                cycle += 7
            self.mDay = 365 + [1, 0][not utils.isLeapYear(self.mYear)] - cycle

        self.normalise()
Exemple #3
0
    def setYearDay(self, day, allow_invalid=False):
        # 1 .. 366 offset from start, or
        # -1 .. -366 offset from end

        if day == 366:
            self.mMonth = 12
            self.mDay = 31 if utils.isLeapYear(self.mYear) else 32

        elif day == -366:
            self.mMonth = 1 if utils.isLeapYear(self.mYear) else 1
            self.mDay = 1 if utils.isLeapYear(self.mYear) else 0

        elif day > 0:
            # Offset current date to 1st January of current year
            self.mMonth = 1
            self.mDay = 1

            # Increment day
            self.mDay += day - 1

        elif day < 0:
            # Offset current date to 1st January of next year
            self.mMonth = 12
            self.mDay = 31

            # Decrement day
            self.mDay += day + 1

        if not allow_invalid:
            # Normalise to get proper year/month/day values
            self.normalise()
        else:
            self.changed()
Exemple #4
0
    def setYearDay(self, day, allow_invalid=False):
        # 1 .. 366 offset from start, or
        # -1 .. -366 offset from end

        if day == 366:
            self.mMonth = 12
            self.mDay = 31 if utils.isLeapYear(self.mYear) else 32

        elif day == -366:
            self.mMonth = 1 if utils.isLeapYear(self.mYear) else 1
            self.mDay = 1 if utils.isLeapYear(self.mYear) else 0

        elif day > 0:
            # Offset current date to 1st January of current year
            self.mMonth = 1
            self.mDay = 1

            # Increment day
            self.mDay += day - 1

        elif day < 0:
            # Offset current date to 1st January of next year
            self.mMonth = 12
            self.mDay = 31

            # Decrement day
            self.mDay += day + 1

        if not allow_invalid:
            # Normalise to get proper year/month/day values
            self.normalise()
        else:
            self.changed()