Ricorrente puo' essere
- giornaliero (TUTTI i giorni)
- settimanale (uno o piu' giorni della settimana, TUTTE le settimane)
- mensile (uno o piu' giorni del mese, TUTTI i mesi)
- annuale (uno o piu' specifici giorni dell'anno nel senso giorno/mese, TUTTI gli anni)
potresti fare anche la variante
- orario (una o piu' ore del giorni, TUTTI i giorni)
Ci devi aggiungere un range di validita'
- per N ricorrenze (ad esempio, annuale per 100 anni. Che cosa potrebbe essere???? )
- fino alla data X
- senza limite (anche se non ha molto senso)
Inoltre devi poter cambiare una ricorrenza (ad esempio quello della prox settimana e' stato annullato) e in modo globale (e' stato spostatodal mercoledi' al giovedi)
====================
Nota che in questo modo, SE lo scheduli il 31 di OGNI mese, dovrebbe accadere SOLO neimesi con 31 giorni.
Potresti aggiungere anche qualcosa del tipo:
- K giorni PRIMA della fine del mese
Se K==0, vuol dire la fine di ogni mese, ed in questo modo si adatta al numero di giorni del mese
====================
Ovviamente puoi semplificare rimuovendo casi di non interesse.