I have the class method bed_start_time() and bed_end_time(). I would like the to keep track of when a room has been started being cleaned and the current time. I would also like to keep track of the time the room is finished being cleaned with bed_end_time(). I have it so the class method keeps track of the room number and the start time in a dict. I have another dict that keeps track of the end time. When I print the start and end time dict they show the same time for start and end even though they have been called at different time. Can someone help. I recently tried adding self to the method but I did not help.
room_with_stimes_dict = {}
room_with_etimes_dict = {}
room_start_times_dict = {}
class Room (object):
def __init__ (self, room_num = None, assigned_house_keeper = None, room_start_time = None, room_end_time = None, room_start_cleaning = None, iso_type = None, running_time = None, assigned_nurse = None, assigned_patient = None):
self.room_num = room_num
self.assigned_house_keeper = assigned_house_keeper
self.room_start_time = room_start_time
self.room_end_time = room_end_time
self.iso_type = iso_type
self.running_time = running_time
self.assigned_nurse = assigned_nurse
self.assigned_patient = assigned_patient
def __str__(self):
return f'Room: {self.room_num} \nAssigned Nurse: {self.assigned_nurse} \nIso Type: {self.iso_type}'
def room_start_time(self):
room_start_time = datetime.datetime.now()
room_start_times_dict [self.room_num] = room_start_time.strftime('%H:%M')
return bed_start_time
def bed_start_time(self):
self.bed_start_time = datetime.datetime.now()
room_with_stimes_dict [self.room_num] = self.bed_start_time.strftime('%H:%M')
return self.bed_start_time
def bed_end_time(self):
self.bed_end_time = datetime.datetime.now()
room_with_etimes_dict [self.room_num] = self.bed_end_time.strftime('%H:%M')
return self.bed_end_time
def add_room(self):
pass
#list of dirty rooms
dirty_rooms = [430, 6218, 520, 452, 444, 423,660,123,877,223,254,220,659,315,550,5228]
room_1 = Room()
room_1.room_num = 430
room_1.iso_type = 'COVID'
room_2 = Room()
room_2.room_num = 6218
room_2.iso_type = 'None'
room_3 = Room()
room_3.room_num = 654
room_3.iso_type = 'influenza'
room_4 = Room()
room_4.room_num = 220
room_4.iso_type = 'None'
#room start time
start_t1 = room_1.bed_start_time()
#time delay
time.sleep(9)
#room end time
end_t1 = room_1.bed_end_time()
time.sleep(3)
start_t2 = room_2.bed_start_time()
time.sleep(12)
end_t2 = room_2.bed_end_time()
time.sleep(3)
start_t3 = room_3.bed_start_time()
time.sleep(7)
end_t3 = room_3.bed_end_time()
time.sleep(3)
start_t4 = room_4.bed_start_time()
time.sleep(1)
end_t4 = room_4.bed_end_time()
#amount of time taken to clean the room
elapsed_t1 = end_t1 - start_t1
elapsed_t2 = end_t2 - start_t2
elapsed_t3 = end_t3 - start_t3
elapsed_t4 = end_t4 - start_t4
#total time to clean all rooms
total_time = elapsed_t1 + elapsed_t2 + elapsed_t3 + elapsed_t4
#avg time to clean a room
avg_time = total_time / 4
#unsorted list of times
times = [elapsed_t1, elapsed_t2, elapsed_t3, elapsed_t4]
#sorted list by length of time. longest time is first
sorted_times = sorted(times, reverse=True)
#prints sorted list
print(sorted_times,'\n')
#test code
print('Elapsed Time 1:')
print(elapsed_t1,'\n')
print('Elapsed Time 2:')
print(elapsed_t2,'\n')
print('Elapsed Time 3:')
print(elapsed_t3,'\n')
print('Total Time:')
print(total_time,'\n')
print('Avg Time:')
print(avg_time,'\n')
print('Room # and Start Times')
print(room_with_stimes_dict, '\n')
print('Room # and End Times')
print(room_with_etimes_dict)
