Al hilo de la entrada anterior (ver), mostraremos cómo calcular las restantes de festividades religiosas relevantes y variables según la Semana Santa.
Tomados los datos de la web www.divvol.org
Como aplicación especial haremos uso de la instrucción Enum para la enumeración y creación de diferentes constantes...
El sentido de esta instrucción es facilitar nuestro trabajo cuando necesitamos emplear bastantes constantes en nuestros procedimientos, principalmente por que se nos permite emplearlo como si fueran objetos, esto es, el tipo definido seguido del punto y luego del nombre de la constante...
Lo que sin duda evitará errores en la sintaxis y uso de dichas constantes.
Un ejemplo sencillo, si vamos a trabajar con tres constantes, podemos escribir:
Public Const rojo = 1
Public Const verde = 2
Public Const azul = 3
pero sería más práctico y seguro trabajar con la lista enumerada:
Public Enum colores
rojo = 1
verde = 2
azul = 3
End Enum
A lo largo de nuestro procedimiento, para recuperar el valor de la constante, podríamos emplear la forma:
colores.rojo
Para resolver nuestra cuestión en particular, crearemos una función personalizada en VBA para tal fin, insertando nuestro código dentro de un módulo estándar desde el editor de VB:
Como podemos ver en la imagen obtenemos en base a las distintas constantes los días concretos para cada año informado:
Tomados los datos de la web www.divvol.org
Como aplicación especial haremos uso de la instrucción Enum para la enumeración y creación de diferentes constantes...
El sentido de esta instrucción es facilitar nuestro trabajo cuando necesitamos emplear bastantes constantes en nuestros procedimientos, principalmente por que se nos permite emplearlo como si fueran objetos, esto es, el tipo definido seguido del punto y luego del nombre de la constante...
Lo que sin duda evitará errores en la sintaxis y uso de dichas constantes.
Un ejemplo sencillo, si vamos a trabajar con tres constantes, podemos escribir:
Public Const rojo = 1
Public Const verde = 2
Public Const azul = 3
pero sería más práctico y seguro trabajar con la lista enumerada:
Public Enum colores
rojo = 1
verde = 2
azul = 3
End Enum
A lo largo de nuestro procedimiento, para recuperar el valor de la constante, podríamos emplear la forma:
colores.rojo
Para resolver nuestra cuestión en particular, crearemos una función personalizada en VBA para tal fin, insertando nuestro código dentro de un módulo estándar desde el editor de VB:
Public Enum dias
DomPascua = 0
MiéCeniza = -46
DomRamos = -7
Ascensión = 40
DomAscensión = 43
Pentecostés = 50
SantísimaTrinidad = 57
CorpusChristi = 61
DomCorpusChristi = 64
End Enum
Function FechaSemanaSanta(año As Integer, FechaSanta As String) As Date
'otros días variables durante y después de la Pascua
'http://www.divvol.org/recursos/fecha_pascua.htm
Dim Ndias As dias
Application.Volatile
Select Case FechaSanta
Case Is = "DomPascua": Ndias = dias.DomPascua
Case Is = "MiéCeniza": Ndias = dias.MiéCeniza
Case Is = "DomRamos": Ndias = dias.DomRamos
Case Is = "Ascensión": Ndias = dias.Ascensión
Case Is = "DomAscensión": Ndias = dias.DomAscensión
Case Is = "Pentescostés": Ndias = dias.Pentecostés
Case Is = "SantísimaTrinidad": Ndias = dias.SantísimaTrinidad
Case Is = "CorpusChristi": Ndias = dias.CorpusChristi
End Select
FechaSemanaSanta = DomingoPascua(año) + Ndias
End FunctionComo podemos ver en la imagen obtenemos en base a las distintas constantes los días concretos para cada año informado:



No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.