Ejemplos fechas

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

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos