Calculas días, meses y años entre dos fechas
De Todoexpertos
Tenía full rato que no pasaba por acá... La razón de mi visita se debe a una inquietud que tengo... Y no logro resolver...
Necesito determinar los días, meses y años entre dos fecha (si aplica) por ejemplo:
FechaInicial = 24/04/2010
FechaActual=07/06/2010
Y que la funcion me devuelva: en variables
Años= 0
Meses= 1
Dias= 12
'************************************************* **************'
He encontrado este código y trate de adaptar... Es una función que me devuelve una cadena en un formato algo así: YYYY/MM/DD ... Luego fuera de la función trato el resultado por una cadena... Ok
Pero la función no esta funcionando del todo bien... Porque al pasar la FechaInicial y la FechaActual ... Me devuelve 0 años... 2 meses ... Y -20 días ...
Código:
Public Function Calcular_Ultima_Visita(FechaInicial As Date, FechaActual As Date) As String
Dim Anios, Meses, Dias As Variant '**************************************************'
Anios = DateDiff("yyyy", FechaInicial, FechaActual)
If FechaActual < DateSerial(Year(FechaActual), Month(FechaInicial), Day(FechaInicial)) Then
Anios = Anios - 1
End If
FechaInicial = DateAdd("YYYY", Años, FechaInicial)
Meses = DateDiff("m", FechaInicial, FechaActual)
If FechaActual < DateSerial(Year(FechaActual), Month(FechaInicial), Day(FechaInicial)) Then
Meses = Meses - 1
End If
FechaInicial = DateAdd("m", Meses, FechaInicial)
Dias = DateDiff("d", FechaInicial, FechaActual)
If FechaActual < DateSerial(Year(FechaActual), Month(FechaInicial), Day(FechaInicial)) Then
Dias = Dias - 1
End If
FechaInicial = DateAdd("d", Dias, FechaInicial)
Calcular_Ultima_Visita = Anios & "/" & Meses & "/" & Dias
End Function
Aca usan la funcion DateSerial que de verdad lo termino de entender... Y cuando a la variable FechaInicial le agregan los dias de la misma FechaInicial tampoco lo comprendo...
Tenía full rato que no pasaba por acá... La razón de mi visita se debe a una inquietud que tengo... Y no logro resolver...
Necesito determinar los días, meses y años entre dos fecha (si aplica) por ejemplo:
FechaInicial = 24/04/2010
FechaActual=07/06/2010
Y que la funcion me devuelva: en variables
Años= 0
Meses= 1
Dias= 12
'************************************************* **************'
He encontrado este código y trate de adaptar... Es una función que me devuelve una cadena en un formato algo así: YYYY/MM/DD ... Luego fuera de la función trato el resultado por una cadena... Ok
Pero la función no esta funcionando del todo bien... Porque al pasar la FechaInicial y la FechaActual ... Me devuelve 0 años... 2 meses ... Y -20 días ...
Código:
Public Function Calcular_Ultima_Visita(FechaInicial As Date, FechaActual As Date) As String
Dim Anios, Meses, Dias As Variant '**************************************************'
Anios = DateDiff("yyyy", FechaInicial, FechaActual)
If FechaActual < DateSerial(Year(FechaActual), Month(FechaInicial), Day(FechaInicial)) Then
Anios = Anios - 1
End If
FechaInicial = DateAdd("YYYY", Años, FechaInicial)
Meses = DateDiff("m", FechaInicial, FechaActual)
If FechaActual < DateSerial(Year(FechaActual), Month(FechaInicial), Day(FechaInicial)) Then
Meses = Meses - 1
End If
FechaInicial = DateAdd("m", Meses, FechaInicial)
Dias = DateDiff("d", FechaInicial, FechaActual)
If FechaActual < DateSerial(Year(FechaActual), Month(FechaInicial), Day(FechaInicial)) Then
Dias = Dias - 1
End If
FechaInicial = DateAdd("d", Dias, FechaInicial)
Calcular_Ultima_Visita = Anios & "/" & Meses & "/" & Dias
End Function
Aca usan la funcion DateSerial que de verdad lo termino de entender... Y cuando a la variable FechaInicial le agregan los dias de la misma FechaInicial tampoco lo comprendo...
2 respuestas
Respuesta de Roberto Alvarado
1
Respuesta de Pedro Cruz Pérez