Skip to content

Commit b719948

Browse files
authored
Merge pull request #8681 from mhayhem/main
#14 - python
2 parents 003f263 + fd3aa71 commit b719948

File tree

2 files changed

+96
-0
lines changed

2 files changed

+96
-0
lines changed

Roadmap/14 - FECHAS/python/mhayhem.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
from datetime import datetime, date, time, timedelta, tzinfo
2+
3+
# EJERCICIO:
4+
# Crea dos variables utilizando los objetos fecha (date, o semejante) de tu lenguaje:
5+
# - Una primera que represente la fecha (día, mes, año, hora, minuto, segundo) actual.
6+
# - Una segunda que represente tu fecha de nacimiento (te puedes inventar la hora).
7+
# Calcula cuántos años han transcurrido entre ambas fechas.
8+
9+
current_date = datetime.today()
10+
11+
my_birthday = datetime(1983, 7, 15, 18, 32, 12)
12+
13+
passed_time = current_date - my_birthday
14+
15+
print(f"Fecha actual: {current_date}.")
16+
17+
print(f"Fecha de nacimiento: {my_birthday}.")
18+
19+
print(f"Tiempo transcurrido entre esas fechas: {passed_time.days // 365} años.")
20+
21+
22+
# DIFICULTAD EXTRA (opcional):
23+
# Utilizando la fecha de tu cumpleaños, formatéala y muestra su resultado de
24+
# 10 maneras diferentes. Por ejemplo:
25+
# - Día, mes y año.
26+
# - Hora, minuto y segundo.
27+
# - Día de año.
28+
# - Día de la semana.
29+
# - Nombre del mes.
30+
# (lo que se te ocurra...)
31+
32+
day_name = my_birthday.strftime("%A")
33+
month_name = my_birthday.strftime("%B")
34+
print(f"fecha completa: {my_birthday.ctime()}.")
35+
print(f"Día: {my_birthday.day}")
36+
print(f"Mes: {my_birthday.month}")
37+
print(f"Año: {my_birthday.year}")
38+
print(f"Número de dia de la semana: {my_birthday.isoweekday()}")
39+
print(f"Fecha solo en sin hora: {my_birthday.date()}")
40+
print(f"Segundos que llevo viviendo: {int(my_birthday.timestamp())}")
41+
print(f"Fecha: {my_birthday.date()}")
42+
print(f"Fecha formateada: {my_birthday.strftime("")}")
43+
print(f"nombre del día de nacimiento: {day_name}")
44+
print(f"Nombre del mes: {month_name}")
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
from time import sleep
2+
import time
3+
import asyncio
4+
5+
# EJERCICIO:
6+
# Utilizando tu lenguaje, crea un programa capaz de ejecutar de manera
7+
# asíncrona una función que tardará en finalizar un número concreto de
8+
# segundos parametrizables. También debes poder asignarle un nombre.
9+
# La función imprime su nombre, cuándo empieza, el tiempo que durará
10+
# su ejecución y cuando finaliza.
11+
12+
async def task(name: str, seconds: int):
13+
print(f"Iniciando {name}.")
14+
await asyncio.sleep(seconds)
15+
print(f"{name} tardara {seconds} segundos.")
16+
return f"{name} termino."
17+
18+
async def main():
19+
start = time.time()
20+
21+
answer = await asyncio.gather(
22+
task("Descarga", 6),
23+
task("Inicialización", 3),
24+
task("Petición http", 2)
25+
)
26+
27+
end = time.time()
28+
print(f"\n Respuestas: {answer}")
29+
print(f"Tiempo de ejecución del programa: {end - start} s.")
30+
31+
# asyncio.run(main())
32+
33+
# DIFICULTAD EXTRA (opcional):
34+
# Utilizando el concepto de asincronía y la función anterior, crea
35+
# el siguiente programa que ejecuta en este orden:
36+
# - Una función C que dura 3 segundos.
37+
# - Una función B que dura 2 segundos.
38+
# - Una función A que dura 1 segundo.
39+
# - Una función D que dura 1 segundo.
40+
# - Las funciones C, B y A se ejecutan en paralelo.
41+
# - La función D comienza su ejecución cuando las 3 anteriores han
42+
# finalizado.
43+
44+
async def extra():
45+
await asyncio.gather(
46+
task("Función C", 3),
47+
task("Función B", 2),
48+
task("Función A", 1)
49+
)
50+
await task("Función D", 1)
51+
52+
asyncio.run(extra())

0 commit comments

Comments
 (0)