|
17 | 17 | - Realiza la ejecución, si el lenguaje lo soporta, en
|
18 | 18 | un hilo independiente.
|
19 | 19 | """
|
20 |
| -from datetime import datetime as dt, timedelta as td |
| 20 | +from datetime import datetime as dt, timezone as tz |
21 | 21 | from threading import Thread
|
22 |
| -from os import system |
| 22 | +from os import system, name |
23 | 23 | from time import sleep
|
24 | 24 |
|
25 |
| -END_TIME = dt.strptime('20241105111925', '%Y%m%d%H%M%S') |
| 25 | +END_TIME = dt.strptime('20241122112725', '%Y%m%d%H%M%S').replace( |
| 26 | + tzinfo=dt.now().astimezone().tzinfo).astimezone(tz.utc) |
26 | 27 |
|
27 | 28 |
|
28 | 29 | class Clock(Thread):
|
29 | 30 | def run(self):
|
30 |
| - while dt.now() < END_TIME: |
31 |
| - system("cls") |
32 |
| - current_time = END_TIME - dt.now() |
| 31 | + while dt.now(tz.utc) < END_TIME: |
| 32 | + if name == "posix": |
| 33 | + system("clear") |
| 34 | + else: |
| 35 | + system("cls") |
| 36 | + current_time = END_TIME - dt.now(tz.utc) |
33 | 37 | days_left = current_time.days
|
34 | 38 | hours_left = current_time.seconds // 3600
|
35 |
| - minutes_left = current_time.seconds // 60 |
| 39 | + minutes_left = (current_time.seconds % 3600) // 60 |
36 | 40 | seconds_left = current_time.seconds - hours_left * 3600 - minutes_left * 60
|
37 | 41 | print(f"Faltan: {days_left} días, {hours_left} horas, {minutes_left} minutos, {seconds_left} segundos")
|
38 | 42 | sleep(1)
|
39 |
| - print(f"TERMINADO: {END_TIME} {dt.now()}") |
| 43 | + print(f"TERMINADO: {END_TIME} {dt.now(tz.utc)}") |
40 | 44 |
|
41 | 45 |
|
42 | 46 | class Counter(Thread):
|
43 | 47 | def run(self):
|
44 | 48 | count = 0
|
45 |
| - while dt.now() < END_TIME: |
| 49 | + while dt.now(tz.utc) < END_TIME: |
46 | 50 | count += 1
|
47 | 51 | print(f"Vamos contando {count}")
|
48 | 52 | sleep(1)
|
49 | 53 | print(f"Terminé de contar en {count}")
|
50 | 54 |
|
51 | 55 |
|
52 | 56 | Clock().start()
|
53 |
| -sleep(0.3) |
| 57 | +sleep(0.5) |
54 | 58 | Counter().start()
|
0 commit comments