def replace(self, hour=None, minute=None, second=None, microsecond=None, delta_hour=0, delta_minute=0, delta_second=0):
if not self:
return self.__class__._null_time
old_hour, old_minute, old_second, old_micro = self.hour, self.minute, self.second, self.microsecond
hour = (hour or old_hour) + delta_hour
minute = (minute or old_minute) + delta_minute
second = (second or old_second) + delta_second
microsecond = microsecond or old_micro
while not (0 <= hour < 24) or not (0 <= minute < 60) or not (0 <= second < 60):
while second < 0:
minute -= 1
second = 60 + second
while second > 59:
minute += 1
second = second - 60
while minute < 0:
hour -= 1
minute = 60 + minute
while minute > 59:
hour += 1
minute = minute - 60
while hour < 1:
hour = 24 + hour
while hour > 23:
hour = hour - 24
return Time(hour, minute, second, microsecond)
评论列表
文章目录