Codi en VBA per Access que verifica si la diferència entre dues dates equival a exactament un any, tenint en compte els anys de traspàs

 Function EsUnAnySencer(data1 As Date, data2 As Date) As Boolean

    Dim diesDiferencia As Long

    Dim dataInicial As Date

    Dim dataFinal As Date

    

    ' Ordenem les dates per assegurar que dataInicial és la més petita

    If data1 < data2 Then

        dataInicial = data1

        dataFinal = data2

    Else

        dataInicial = data2

        dataFinal = data1

    End If

    

    ' Calculem la diferència en dies

    diesDiferencia = DateDiff("d", dataInicial, dataFinal)

    

    ' Comprovem si coincideix amb 365 o 366 dies

    If diesDiferencia = 365 Or diesDiferencia = 366 Then

        ' Comprovem si la diferència d'anys també és exactament 1

        If DateAdd("yyyy", 1, dataInicial) = dataFinal Then

            EsUnAnySencer = True

            Exit Function

        End If

    End If

    

    EsUnAnySencer = False

End Function


Comentaris

Entrades populars