Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Microwave Ovens by rafal.pawlowski
def time_to_s(time):
m,s = map(int,time.split(':'))
return m*60 + s
def add(base_time,add_time):
t_s = time_to_s(base_time)
mode = add_time[-1]
value = int(add_time[:-1])
if mode == 's':
t_s += value
else:
t_s += 60*value
if t_s > 90*60:
return "90:00"
else:
m,s = divmod(t_s,60)
ms,ss = [str(m).zfill(2),str(s).zfill(2)]
return f'{ms}:{ss}'
def sub(base_time,add_time):
t_s = time_to_s(base_time)
mode = add_time[-1]
value = int(add_time[:-1])
if mode == 's':
res = t_s - value
else:
res = t_s - value * 60
if res < 0:
return base_time
else:
m,s = divmod(res,60)
ms,ss = [str(m).zfill(2),str(s).zfill(2)]
return f'{ms}:{ss}'
class MicrowaveBase:
time = '00:00'
class Microwave1(MicrowaveBase):
def show_time(self):
temp = list(self.time)
temp[0] = '_'
return ''.join(temp)
class Microwave2(MicrowaveBase):
def show_time(self):
temp = list(self.time)
temp[-1] = '_'
return ''.join(temp)
class Microwave3(MicrowaveBase):
def show_time(self):
return self.time
class RemoteControl:
def __init__(self,microwave):
self.microwave = microwave
def set_time(self,time):
self.microwave.time = time
def show_time(self):
return self.microwave.show_time()
def add_time(self,add_time):
self.set_time(add(self.microwave.time, add_time))
def del_time(self,del_time):
self.set_time(sub(self.microwave.time, del_time))
March 4, 2019