Puoi creare nella macro un array di 12 short con l’indicazione dei giorni di ogni mese:
esempio short mese[12] mese[0]=31 mese[1]=28. . .
Poi esegui un getdata della LW del mese e la usi per trovare nell’array i giorni del mese. Naturalmente ti rimane il problema dell’anno bisestile ma ci sono in rete algoritmi per determinare se l’anno è bisestile oppure no.
Il calendario gregoriano prevede che ogni anno perfettamente divisibile per 100, ad esempio 1900, sia un anno bisestile solo se perfettamente divisibile anche per 400. Ecco un esempio di calcolo su di un nostro sistema SlimLine (Stampa programma).
LeapYear:=((MOD(Year, 4) = 0) AND (MOD(Year, 100) <> 0) OR (MOD(Year, 400) = 0));