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)))