import datetime
import math
# Crear un objeto datetime para la fecha y hora actual
ahora = datetime.datetime.now()
print(ahora) # Resultado: Fecha y hora actual en formato 'YYYY-MM-DD HH:MM:SS'
# Obtener la fecha actual
fecha_actual = datetime.date.today()
print("Fecha actual:", fecha_actual)
fecha_formateada = fecha_actual.strftime("%d - %m - %Y")
print("Fecha formateada:", fecha_formateada)
print(fecha_actual.day)
print(ahora.minute)
print(ahora.second)
# Crear una fecha específica
fecha_personalizada = datetime.date(2023, 10, 3)
print("Fecha personalizada:", fecha_personalizada)
# Crear una fecha y hora específicas
fecha_hora_personalizada = datetime.datetime(2023, 10, 3, 14, 30,10,9)
print("Fecha y hora personalizada:", fecha_hora_personalizada)
anyo_que_viene=datetime.datetime(2024,10,10)
print(anyo_que_viene.weekday())
# Crear una fecha a partir de una cadena de texto formateada
fecha_desde_cadena = datetime.datetime.strptime("03/10/2023", "%d/%m/%Y")
print("Fecha desde cadena:", fecha_desde_cadena)
mifecha="10/10/2023" # ¿Es una fecha? No: es una cadena
mifecha_a_fecha=datetime.datetime.strptime(mifecha,"%d/%m/%Y")
print(mifecha_a_fecha) # ¿Es una fecha?
otrafecha=datetime.date(2023,10,10) # ¿Es una fecha?
resta=anyo_que_viene-mifecha_a_fecha
print(resta.days)
print(resta.seconds)
hoy=datetime.date.today()
manyana=hoy+datetime.timedelta(days=1)
semana_que_viene=hoy+datetime.timedelta(days=7)
print(manyana)
print(semana_que_viene)
print("Día de la semana:", fecha_actual.weekday()) # 0 es el lunes el 6 domingo
# Ejemplos
def antiguedad_empleado2(fecha_contrato):
fecha_actual=datetime.date.today()
anyos=fecha_actual.year-fecha_contrato.year
meses=fecha_actual.month-fecha_contrato.month
if (meses<0):
meses+=12
anyos-=1
dias=fecha_actual.day-fecha_contrato.day
if dias<0:
meses-=1
dias+=30
return (dias,meses,anyos)
def antiguedad_empleado(fecha_contrato):
fecha_actual=datetime.date.today()
resta=fecha_actual-fecha_contrato
print(resta.days)
anyos=math.floor(resta.days/365)
print(anyos)
meses=math.floor((resta.days-anyos*365)/30)
print(meses)
dias=resta.days-anyos*365-meses*30
return (dias,meses,anyos)
print(antiguedad_empleado2(datetime.date(2015,12,21)))
# es fin de semana?
def es_fin_de_semana(fecha):
""" if fecha.weekday()<5:
return False
else:
return True
"""
return not fecha.weekday()<5 # No es codigo ninja, es supercomún
def siguiente_dia_laborable(fecha):
fecha+=datetime.timedelta(days=1)
while es_fin_de_semana(fecha):
fecha += datetime.timedelta(days=1)
return fecha
print(siguiente_dia_laborable(datetime.date.today()))
print(siguiente_dia_laborable(datetime.date(2023,10,14)))