Problema con fechas y DATEDIFF
Tengo un problema con la función DateDiff para evaluar la diferencia entre dos fechas.
Resulta que si escribo en la ventana de ejecución inmediata de Visual Basic la siguiente sentencia:
?DateDiff("yyyy", "1/01/2011", "1/01/2012")
Obtengo el resultado correcto igual a 1.
Sin embargo, en un procedimiento y suponiendo que evalúe el resultado al pulsar un botón de comando, la misma sentencia:
Private Sub Ejemplo_click()
dim valor as date
valor = DateDiff("yyyy", "1/01/2011", "1/01/2012")
MsgBox "valor=" & valor
End Sub
me da como resultado el valor incorrecto de 31/12/1899.
He hecho tropecientas pruebas y no he encontrado la solución en la red. Es curioso porque si aplico:
valor = DateDiff("yyyy", "1/01/2012", "1/01/2012"),
el resultado es 0:00:00.
Lo he probado tanto en Windows Vista como en XP, con idénticos resultados; he verificado la configuración regional y de idioma de Windows, por si las moscas, pero no encuentro solución.
Si pongo valor=DateDiff("yyyy", "1/01/2016", "1/01/2012"), que debería dar -4, muestra un resultado de 26/12/1899, vamos que mi calculadora anda algo desfasadilla, jejejj.