Dal numero della settimana ed anno a intervallo date

di il
2 risposte

Dal numero della settimana ed anno a intervallo date

Salve a tutti, chiudo cortesemente un aiuto non riuscendo a trovare soluzione.

In un report ho il dato anno ed il dato settimana, esempio 2025   37

vorrei riuscire a calcolare, partendo dal lunedi ed arrivando a venerdi, il corrispondente intervallo e quindi ottenere il seguente risultato (esempio)

" dal 05/10/2025 al 10/10/2025 "

come posso fare perfavore?

Grazie per la pazienza ed aiuto.

2 Risposte

  • Re: Dal numero della settimana ed anno a intervallo date

    Non so che conti tu abbia fatto, ma la settimana 37 del 2025 è questa:

    settimana 37    8 settembre 2025    14 settembre 2025

    Dove appunto il giorno 8 Settembre è Lunedì ed il 14 è domenica.

    Il giorno 5/10/2025 appartiene alla settimana 40 ed era Domenica, mentre il giorno 10/10/2025 appartiene alla settimana 41 ed era Venerdì, cerca di fare esempi coerenti con quello che chiedi.

    Avevo fatto un catalogo di funzioni sulle manipolazioni delle date... probabilmente questa è quella che ti serve:

    Public Function Week2Date(WeekNo As Long, Optional Anno) As Date
        ' ------------------------------------------------------
        ' Restituisce la data del Lunedì della settimana[WeekNo]
        ' passata come parametro
        ' ------------------------------------------------------
        Dim Jan1             As Date
        Dim Sub1             As Boolean
        Dim ret              As Date
    
        If IsMissing(Anno) Then
            Jan1 = DateSerial(Year(Date), 1, 1)
        Else
            Jan1 = DateSerial(Anno, 1, 1)
        End If
        Sub1 = (Format(Jan1, "ww", VBA.VbDayOfWeek.vbUseSystemDayOfWeek, VBA.VbFirstWeekOfYear.vbUseSystem) = 1)
        ret = DateAdd("ww", WeekNo + Sub1, Jan1)
        ret = ret - Weekday(ret, vbMonday) + 1
        Week2Date = ret
    End Function

    Provala, restituisce correttamente il giorno 8 Settembre 2025, quindi con DateAdd sommi 4 per ottenere il Venerdì.

  • Re: Dal numero della settimana ed anno a intervallo date

    Grazie davvero @Alex
    ho adattato il codice inserendo i campi sorgente dove avevo l'anno e la settimana ed ho sommato 4 come corretto essere.

    Risolto, verificato e report generato.

    Non sarà sicuramente perfetto ma posto il codice che potrebbe servire anche ad altri:

       Anno = Left([ORDINAFASE], 4)
       Jan1 = DateSerial(Anno, 1, 1)
       Sub1 = (Format(Jan1, "ww", VBA.VbDayOfWeek.vbUseSystemDayOfWeek, VBA.VbFirstWeekOfYear.vbUseSystem) = 1)
       ret = DateAdd("ww", Right([ORDINAFASE], 2) + Sub1, Jan1)
       ret = ret - Weekday(ret, vbMonday) + 1
       Week2date = ret
           
       Me.Testo627.Value = "dal " & Week2date & " al " & Week2date + 4

Devi accedere o registrarti per scrivere nel forum
2 risposte