Ciao Tornu,
mentre davo un'occhiata al programma mi sono accorto di un bug che credo sia di Gambas (Trunk) anzi se non hai la trunk potresti fare una prova col codice postato più avanti e riferirmi.
Ne approfitto anche per meglio chiarire il codice che avevo scritto.
Prendiamo in considerazione l'immagine allegata che rappresenta due settimane contenenti l’inizio dell’anno, una (l’arancione) che ha il primo gennaio che cade di mercoledì, l’altra col primo di venerdì.
La settimana arancione è la prima settimana dell’anno e pertanto conterrà 3 giorni che appartengono all’anno precedente. Se io la devo conteggiare per calcolare il numero dei giorni fino ad una data settimana dell’anno, dovrò sottrarre 3.
Di contro se il primo dell’anno cade di venerdì come nel caso della settimana bianca allora sarà l’ultima settimana dell’anno precedente a contenere 2 giorni che appartengono all’anno nuovo e che andranno sommati nel calcolo dei giorni.
Così come avevo concepito il progetto; quando indico il numero delle settimane, per esempio la ventesima, per ottenere l’ultimo giorno della settimana indicata non basta moltiplicare 20 settimane per 7 giorni occorre anche aggiungere o sottrarre come spiegato prima.
Malgrado le tante informazioni ottenute sulle date continuo a non capirci molto, ma credo proprio che questo sia un bug (l’ho segnalato):
Public Sub Main()
Print CDate("1/1/2017"); Date(2017, 1, 1) ' > 31/12/2016 23:00:0001/01/2017 00:00:00
End
Quindi per non sapere ne leggere ne scrivere ti consiglio di usare questo progetto allegato che usa
Date al posto di
CDate.