Sí, le he dicho tipo de dato "function" para llamarlo de alguna manera.
Estoy intentado hacer un diseño que me permita almacenar cualquier tipo de acontecimiento/festividad que se repita a lo largo del tiempo intentando generalizarlo para cualquier tipo de calendario (no sólamente el gregoriano).
Pensé en situaciones como estás:
Cita: San Fulano
Inicio: dia X del año
Fin: dia X del año,
Periodo: 1 año
tipo: gregoriano
Fiesta mayor de País de Nunca Jamás
Inicio: dia 6 de la semana 1 del mes 8
Fin: dia 7 de la semana 1 del mes 8
Periodo: 1 año
tipo: gregoriano
Ramadán:
Inicio: dia 1 del mes 9 del año
Fin: dia final del mes 9 del año
Periodo: 1 año
tipo: musulmán
acontecimiento trimensual inventado:
Inicio: dia 1 del mes
Fin: dia 1 del mes
Periodo: 3 meses
tipo: gregoriano
Y aquí un ejemplo que se saldría del patrón:
Cita: Año Xacobeo:
Inicio: 1 dia mes 1
Fin: 31 dia de mes
Periodo: ???
tipo: gregoriano
En realidad es el año tal que el 25 de julio cae en domingo y no tiene un periodo regular.
Por tanto, se me ocurrió que una forma más generica de guardar los datos de un acontecimiento/festividad es mediante el uso de un predicado. Que no es más que una función que devuelve true o false.
¿Hay alternativas mejores?
Un saludo!