import datetime
# crear una función cuantoFalta(fecha) a la que le pasamos una fecha
# y nos devuelve cuantos días faltan hasta esa fecha
def cuantoFalta(fecha):
# Calcular cuantos días faltan hasta la fecha que me pasan
# que día es hoy
hoy = datetime.datetime.now()
# Hago la resta, en python es tan sencillo como restar
faltan = fecha - hoy # timedelta que es un periodo de tiempo
# De ese periodo de tiempo me interesan los días
return faltan.days
# La fecha de mi cumpleaños
miFecha = datetime.datetime(2024, 8, 13)
# ¿Cuanto falta hasta mi cumpleaños?
print(cuantoFalta(miFecha)) # 75
# crear una función primerosDeMes(anyo) que nos devuelva una lista con las fechas
# de los primeros de mes de ese año (1 de enero, 1 de febrero, 1 de marzo...)
def primerosDeMes(anyo):
# Crear una lista de fechas
res = []
# creo una fecha datetime.date(año,mes,dia)
# ¿Cuantas fechas tengo que crear? 12
for i in range(12):
res.append(datetime.datetime(anyo, i + 1, 1))
# res.append("01/"+str(i+1)+"/"+str(anyo))
return res
print(primerosDeMes(2024)) # [2024-1-1,2024-2-1,....,2024-12-1]
print(primerosDeMes(2556)) # [2024-1-1,2024-2-1,....,2024-12-1]
fechas = primerosDeMes(2024)
for fecha in fechas:
print(fecha.strftime("%d/%m/%Y"), cuantoFalta(fecha))
# crear una función a la que le pasamos una cadena con una fecha en formato dia/mes/año
# y nos devuelve true si es fin de semana y false en caso contrario
# esFinDeSemana(cadena)
def esFinDeSemana(cadena):
res = False
# Pasar de cadena a fecha
fecha = datetime.datetime.strptime(cadena, "%d/%m/%Y")
if fecha.weekday() >= 5:
res = True
return res
print(esFinDeSemana(("01/06/2024"))) # true
print(esFinDeSemana(("04/06/2024"))) # false
# crear una función a la que le pasamos un año, un mes y un día y nos devuelve una lista
# con todas las horas exactas de ese día
# crearAgendaDia(2024,5,1)->[2024-5-1 00:00,2024-5-1 01:00,2024-5-1 02:00,2024-5-1 03:00,...2024-5-1 23:00]
def crearAgendaDia(anyo, mes, dia):
res = []
# crear una lista con unas horas que van de donde a donde? de 0 a 23
for i in range(24):
res.append(datetime.datetime(anyo, mes, dia, i))
return res
print(crearAgendaDia(2024, 5, 1)) # [2024-5-1 00:00,2024-5-1 01:00,2024-5-1 02:00,2024-5-1 03:00,...2024-5-1 23:00]