¿Determinar la fecha del ultimo día laborable del mes y el nombre del día en colombia?

Espero estén bien quisiera hacer la siguiente pregunta si alguien me pudiera ayudar.

¿Cómo puedo obtener la fecha del ultimo día laborable del mes y nombre del día en Colombia, con la opción de incluir o excluir el día sábado como laborable? Por ejemplo, para el mes de marzo de 2021 el último día laborable es el 31/03/2021 y es miércoles. En Colombia algunos festivos son trasladados al siguiente lunes.

NOTA: me gustaría el cálculos sin tablas de festivos.

2 respuestas

Respuesta
2

Depende de como quieras verlo. Por ejemplo, si tengo un formulario con tres cuadros de texto, donde en el primero voy a escribir la fecha que quiera, cuando escribo una

Pero en el caso de que el último día caiga en sábado, le quita uno

En caso de que cayera en domingo le quitaría dos, ya que el viernes hay que trabajar, si o si.

El código del evento Después de actualizar del cuadro de texto Fecha es

Private Sub Fecha_AfterUpdate()
UltimoDia = DateSerial(Year([Fecha]), Month([Fecha]) + 1, 0)
If Format([UltimoDia], "dddd") = "Sábado" Then
UltimoDia = UltimoDia - 1
ElseIf Format([UltimoDia], "dddd") = "Domingo" Then
UltimoDia = UltimoDia - 2
End If
NombreDia = Format([UltimoDia], "dddd")
End Sub

Amplío la respuesta para contestar al idiota de Eperezfer y digo idiota con todas las letras. En el enunciado de la pregunta, dice bien claro que le gustaría el cálculo sin tabla de festivos. Y en Colombia como en Australia, si no se tienen en cuenta los festivos, el cálculo es ese.

Respuesta
1

Que respuesta tan absurda, no comprendo porque responden sin tener seguridad de la respuesta, en varias oportunidades he respondido que TodoExpertor no es un competencia.

Están preguntando es el día del último día hábil de un mes en Colombia, esto no se puede tomar a la ligera, porque en Colombia algunos festivos se trasladan al siguiente lunes y el día sábado puede considerarse laborable o no. en consecuencia el día puede variar notablemente.

Hace 20 años elaboré el calendario perpetuo de Colombia con los respectivos festivos en VBA, sin necesidad de tablas y array. Para obtener el último día laborable en Colombia se debe considerar que algunos festivos se trasladan al día lunes. A continuación le presento como se llama la función que determina exactamente el último día hábil del mes en Colombia:

?UltimoDiaLab("01/10/2021"TRUE)

Esta función retorna : 30/10/2021 (Sábado) porque se ha incluido el segundo parámetro como TRUE, es decir, se considera el día sábado como laborable. Para que está función retorne el resultado requiere de otras funciones. Observe el calendario. Como la función se le pasa el segundo parámetro como TRUE, indica que se considere el día sábado como laborable. En consecuencia, retorna el día 30 de abril. Esta es la función que se encarga de retornar la fecha:

Pero para que está función retorne la fecha necesita de la función DiaNoLaborable(), pero a la vez esta función requiere de otras 12 o 15 funciones. Este es el mes de octubre del 2021.

No es posible describir acá todas las funciones, si quiere o sigue TodoExpertos puede solicitar la funciones a [email protected], favor el asunto hacer referencia al nombre de la consulta.

Amplio la respuesta para demostrarle al TERCO Julián González que en la pregunta cuando dicen "me gustaría el cálculos sin tablas de festivos" se refieren es a que los festivos no se busquen sobre la tabla, sino que debe ir incluidos en el código y es lo que he respondido a "¿Determinar la fecha del último día laborable del mes y el nombre del día en Colombia?"

Además, en la pregunta dicen "opción de incluir o excluir el día sábado", en el ejemplo de la respuesta fijé el día sábado como laborable, en consecuencia el último día laborable es el sábado 30/10/2021. Por otra parte preguntan la fecha y el nombre del día. En la respuesta se me olvidó explicar como obtener el nombre del día con base en la función UltimoDiaLab(), por ejemplo:

StrConv(Format(UltimoDiaLab(fecha, True), "dddd"), vbProperCase)

Retorna "Sábado"

Veamos un ejemplo porque la respuesta del terco no sirve para Colombia, tomemos el mes de junio del año 2025:

Y llamo la función:

?UltimoDiaLab("1/6/2025",False) obtengo 27/06/2025 que corresponde al viernes.

¿

?UltimoDiaLab("1/6/2025", True) obtengo 28/06/2025 que corresponde al sábado, porque pasé el segundo parámetro como True, para tener en cuenta el sábado como laborable.

Para demostrar aún más porque la respuesta del idiota "Eperezfer" es la correcta que pasa si el último día del mes es lunes festivo, la solución del TERCO no sirve para nada. Invito al terco a que tome un curso avanzado de programación en VBA para que no siga cometiendo estos errores. Finalizando no es lo mismo hacer el cálculo para Colombia que Australia y cualquier otro país.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas