DDayThistle
Espacio de programación con IA

Desplazamiento de días laborables con festivos

Desplaza una fecha entre menos 366 y 366 días laborables, omitiendo fines de semana y hasta 1000 festivos.

● ● ●DayThistle●
Flujos de trabajo · Desplazamiento de días laborables con festivos ×
from datetime import date, timedelta

def working_day_shift(start, days, holidays):
    if type(start) is not date or type(days) is not int or not -366 <= days <= 366:
        raise ValueError("days.input")
    if type(holidays) is not set or len(holidays) > 1000 or any(type(d) is not date for d in holidays):
        raise ValueError("days.holidays")
    remaining, step = abs(days), 1 if days >= 0 else -1
    for _ in range(7*(remaining+len(holidays))+7):
        if remaining == 0:
            return start
        try:
            start += timedelta(days=step)
        except OverflowError as error:
            raise ValueError("days.range") from error
        if start.weekday() < 5 and start not in holidays:
            remaining -= 1
    raise RuntimeError("days.steps")
✳Desplazamiento de días laborables con festivos
✓ CambiosRevisa antes de aplicar ↗
Vista ilustrativa
Proyecto
Comprueba cero, retroceso y límites del calendario, rechazando fechas inválidas sin cambiar los festivos.
Revisa antes de aplicar
Compara el comportamiento real con el resultado esperado. Si una prueba falla, investiga la causa antes de hacer más cambios.
Modelos
Configura un endpoint compatible con OpenAI o Anthropic usando la URL base y, si hace falta, una clave API. Prueba la conexión. Un servidor local debe estar en ejecución; las herramientas remotas pueden enviar datos por separado.
Flujos de trabajo

Desplazamiento de días laborables con festivos

Flujos de trabajo ↗
Flujos de trabajo
from datetime import date, timedelta

def working_day_shift(start, days, holidays):
    if type(start) is not date or type(days) is not int or not -366 <= days <= 366:
        raise ValueError("days.input")
    if type(holidays) is not set or len(holidays) > 1000 or any(type(d) is not date for d in holidays):
        raise ValueError("days.holidays")
    remaining, step = abs(days), 1 if days >= 0 else -1
    for _ in range(7*(remaining+len(holidays))+7):
        if remaining == 0:
            return start
        try:
            start += timedelta(days=step)
        except OverflowError as error:
            raise ValueError("days.range") from error
        if start.weekday() < 5 and start not in holidays:
            remaining -= 1
    raise RuntimeError("days.steps")
Espacio de programación con IA

Explicita las reglas de planificación antes de editar código de fechas

El código de planificación suele mezclar políticas de negocio con aritmética ordinaria de calendario. DayThistle es un espacio de programación con IA para Windows donde separar esas cuestiones al revisar tu proyecto. Empieza por la fecha que produce la aplicación, la fecha esperada y las reglas que justifican esa expectativa. Pide al modelo conectado que inspeccione el código pertinente antes de sugerir una corrección.

Por ejemplo, puedes solicitar una revisión de una función de plazos que omita fines de semana y un conjunto de festivos suministrado. Explica si cuenta el día inicial, cómo se comportan los desplazamientos negativos y quién aporta los festivos. Pide una propuesta que conserve esas decisiones tanto en el consumidor como en la función auxiliar, en lugar de asumir una definición universal de día laborable.

Verifica los cambios propuestos mediante casos derivados de esas reglas. Incluye un cruce de fin de semana, un festivo contiguo a un fin de semana, un desplazamiento cero y un movimiento hacia atrás. Ejecuta las pruebas del proyecto e inspecciona el comportamiento límite para fechas no admitidas. Un plazo aparentemente correcto en un ejemplo no demuestra que todos los consumidores utilicen la misma política.

DayThistle se conecta a endpoints admitidos compatibles con OpenAI o de Anthropic. Puedes elegir un modelo de IA sin censura que ofrezca tu servicio; las herramientas y el contexto disponibles siguen dependiendo del servidor. Mantén la política escrita en la tarea para que el modelo ayude a implementarla sin decidir silenciosamente cómo planifica el trabajo tu organización.

Preguntas detrás de un cambio de días laborables

¿Proporciona DayThistle un calendario de festivos?

La tarea de ejemplo utiliza festivos aportados por tu aplicación. Identifica su fuente y la cobertura esperada en la solicitud. No supongas que abrir el espacio de trabajo proporciona festivos regionales actualizados ni decide qué celebraciones afectan a tus plazos.

¿Debe contar el día inicial en el desplazamiento?

Especifica esa regla explícitamente e incluye un caso cuyo inicio sea laborable. Políticas diferentes producen respuestas diferentes. Pide al asistente que conserve la convención elegida tanto al avanzar como al retroceder.

¿Cómo separo los festivos incorrectos de un defecto del código?

Conserva el conjunto exacto de festivos junto con el caso que falla e inspecciona su contenido antes de cambiar el cálculo. Compara el resultado con la política escrita. Un festivo ausente y una condición de omisión incorrecta requieren correcciones diferentes.

¿Qué ocurre si el bucle propuesto no tiene una condición clara de parada?

Pregunta cómo limita la implementación los desplazamientos admitidos y cómo trata el desbordamiento del calendario. Revisa ese comportamiento antes de aceptarlo. Ejecuta pruebas de límites junto con fechas normales para evitar que corregir un plazo introduzca un cálculo sin límite.

Descargar para Windows ↗

DayThistle · Actualizado 2026-10-25