import datetime
# fechas, horas, fechas y horas
# date, time, datetime
# Obtener la fecha y hora actual con now
ahora=datetime.datetime.now()
# Tengo el momento actual
print(ahora)
# los valores de fecha (año, mes y día)
print(ahora.year,ahora.month,ahora.day)
# los valores de tiempo (hora,minutos, segundos, microsegundos)
print(ahora.hour,ahora.minute,ahora.second,ahora.microsecond)
# día de la semana, la parte de la fecha o la parte de la hora
print(ahora.weekday(),ahora.date(),ahora.time())
# si solo me interesa la fecha uso el date y el today. No tengo datos de tiempo
hoy=datetime.date.today()
print(hoy)
# Crear una fecha dando los valores a mano (año,mes,día,hora,minuto,segundo)
unaFecha=datetime.datetime(2024,6,4,18,30,00)
# Lo puedo hacer con parámetros nombrados
otraFecha=datetime.datetime(day=5,month=1,year=2025,hour=20,minute=30)
print(unaFecha)
print(otraFecha)
# Lo mismo sin tiempo, solo la fecha
soloFecha=datetime.date(2024,1,15)
print(soloFecha)
# Restar y sumar fechas. Esto me da un objeto timedelta que es intervalo de tiempo
diferencia=unaFecha-ahora
print(diferencia.days,diferencia.seconds)
# calculo una diferencia entre fechas se crea un objeto timedelta
# Intervalo de tiempo lo creo poniendo los valores que necesite
intervalo=datetime.timedelta(hours=2,minutes=30)
# Puedo restar o sumar a la fecha ese intervalo de tiempo
print(ahora-intervalo)
# Al imprimir se muestra en formato año mes dia hora minuto segundo
# Podemos cambiar como se muestra dia mes año
print(ahora.strftime("%d-%m-%Y"))
# Hora minutos segundos
print(ahora.strftime("%H-%M-%S"))
# hora am/pm minutos segundos
print(ahora.strftime("%I%p-%M-%S"))
# dia del año y semana del año
print(ahora.strftime("%j %U %W"))
# fecha completa
print(ahora.strftime("%c"))
miFecha="03/03/2025"
# convierto de una cadena a una fecha con un formato determinado
# tendríamos que saber el formato
fecha=datetime.datetime.strptime("03/03/2025","%d/%m/%Y")
print(fecha,fecha.month)