From e0e86bf6202b21ba7f1ea382933361baf062acdd Mon Sep 17 00:00:00 2001 From: Izri Toufali Lapaz Date: Wed, 9 Nov 2022 12:13:28 +0100 Subject: [PATCH 1/5] Updated README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index fa0237d..b92c209 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,6 @@ # OpenBootCampPython Repository to store Python boot camp. + +Ejercicio 7.B: En este segundo ejercicios tendréis que crear un script que nos diga si es la hora de ir a casa. Tendréis que hacer uso del modulo time. Necesitaréis la fecha del sistema y poder comprobar la hora. + +En el caso de que sean más de las 7, se mostrará un mensaje y en caso contrario, haréis una operación para calcular el tiempo que queda de trabajo. From 8244db34a2f83887638e80b597a284d868d1d628 Mon Sep 17 00:00:00 2001 From: tlizri Date: Wed, 9 Nov 2022 15:59:14 +0100 Subject: [PATCH 2/5] Completed exercise seven B --- src/exerciseseven/ishometime.py | 70 +++++++++++++++++++++++++++++++++ src/main.py | 12 +++++- 2 files changed, 80 insertions(+), 2 deletions(-) create mode 100644 src/exerciseseven/ishometime.py diff --git a/src/exerciseseven/ishometime.py b/src/exerciseseven/ishometime.py new file mode 100644 index 0000000..ce88637 --- /dev/null +++ b/src/exerciseseven/ishometime.py @@ -0,0 +1,70 @@ +# IMPORT +from time import localtime, time, sleep + +# CONSTANT +ENDWORK = (19, 0, 0) # End work time +WORKTIME = 8 # Work hours + + +# FUNCTION +def diffTime(actual: list, end: tuple) -> int: + """Calculate substraction between two times in seconds + :param end: end time in format Hours, Minutes, Seconds + :type end: tuple + :param actual: start time in format Hours, Minutes, Seconds + :type actual: tuple + :return: substraction of end time and start time in hours + :rtype: int + """ + diff = 0 + diff += end[2] - actual[2] + diff += (end[1] - actual[1]) * 60 + diff += (end[0] - actual[0]) * (60 * 60) + return diff + + +def toTimeFormat(sec: int) -> list: + """Transform seconds in format Hours, Minutes, Seconds + :param sec: seconds to transform + :type sec: int + :return: secos transformed in format Hours, Minutes, Seconds + :rtype: list + """ + horas = sec // (60 * 60) + minutos = (sec // 60) - (horas * 60) + segundos = sec - (horas * 60 * 60) - (minutos * 60) + return [horas, minutos, segundos] + + +def showTime(t: list): + msg = 'Faltan ' + msg += '0' + str(t[0]) if t[0] < 10 else str(t[0]) + msg += ' hora ' if t[0] == 1 else ' horas ' + msg += '0' + str(t[1]) if t[1] < 10 else str(t[1]) + msg += ' minuto ' if t[1] == 1 else ' minutos ' + msg += '0' + str(t[2]) if t[2] < 10 else str(t[2]) + msg += ' segundo ' if t[2] == 1 else ' segundos ' + print(msg, end='\r') + sleep(1) + + +def isHomeTime(): + """Function calculate the time left until work end + :return: None + :rtype: NoneType + """ + actual = list(localtime(time())[3:6]) # Current time in (HH, mm, ss) + diff = diffTime(actual, ENDWORK) + left = toTimeFormat(diff) + if 0 == left[0] and (left[1] > 0 or left[2] > 0): + showTime(left) + return False + elif ENDWORK[0] - WORKTIME == left[0] and left[1] == 0 and left[2] == 0: + showTime(left) + return False + elif 0 < left[0] < ENDWORK[0] - WORKTIME: + showTime(left) + return False + else: + print('Hora de ir a casa') + return True diff --git a/src/main.py b/src/main.py index a47b6a3..84e16e3 100644 --- a/src/main.py +++ b/src/main.py @@ -1,9 +1,17 @@ +from time import sleep + + +from exerciseseven.ishometime import isHomeTime + + def main(): - """Main script for pythonBootCamp project + """Main script for exercise seven B :return: None :rtype: NoneType """ - pass + home = False + while not home: + isHomeTime() if __name__ == '__main__': From 8be4cd7d9ede346e2f56cbaf6e15f92ab4bf667c Mon Sep 17 00:00:00 2001 From: tlizri Date: Wed, 9 Nov 2022 16:02:28 +0100 Subject: [PATCH 3/5] Added docstring --- src/exerciseseven/ishometime.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/exerciseseven/ishometime.py b/src/exerciseseven/ishometime.py index ce88637..2c8ffa9 100644 --- a/src/exerciseseven/ishometime.py +++ b/src/exerciseseven/ishometime.py @@ -37,6 +37,13 @@ def toTimeFormat(sec: int) -> list: def showTime(t: list): + """Show in terminal the time in format 'Faltan HH hora(s) mm minuto(s) ss segundo(s) + every second + :param t: time to show in format (HH, mm, ss) + :type t: list + :return: None + :rtype: NoneType + """ msg = 'Faltan ' msg += '0' + str(t[0]) if t[0] < 10 else str(t[0]) msg += ' hora ' if t[0] == 1 else ' horas ' From 915e6176253c7f3dbf0d6211c8e025463159d2a7 Mon Sep 17 00:00:00 2001 From: tlizri Date: Wed, 9 Nov 2022 16:04:38 +0100 Subject: [PATCH 4/5] Corrected bug in main.py where 'while' loop never ends --- src/exerciseseven/ishometime.py | 2 +- src/main.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/exerciseseven/ishometime.py b/src/exerciseseven/ishometime.py index 2c8ffa9..ff8b3d9 100644 --- a/src/exerciseseven/ishometime.py +++ b/src/exerciseseven/ishometime.py @@ -56,7 +56,7 @@ def showTime(t: list): def isHomeTime(): - """Function calculate the time left until work end + """Function calculate the time left until work end show it every second :return: None :rtype: NoneType """ diff --git a/src/main.py b/src/main.py index 84e16e3..4dfed75 100644 --- a/src/main.py +++ b/src/main.py @@ -11,7 +11,7 @@ def main(): """ home = False while not home: - isHomeTime() + home = isHomeTime() if __name__ == '__main__': From 49505879b3f50daf3c5d2a0b92eaeb06d96d24e3 Mon Sep 17 00:00:00 2001 From: tlizri Date: Wed, 9 Nov 2022 19:13:43 +0100 Subject: [PATCH 5/5] Fixed bug when time to go home message appears --- src/exerciseseven/ishometime.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/exerciseseven/ishometime.py b/src/exerciseseven/ishometime.py index ff8b3d9..2cf7194 100644 --- a/src/exerciseseven/ishometime.py +++ b/src/exerciseseven/ishometime.py @@ -73,5 +73,5 @@ def isHomeTime(): showTime(left) return False else: - print('Hora de ir a casa') + print('Hora de ir a casa', end='\r') return True