Como calcular la cantidad de meses y días entre un Rango de Fechas.

La pregunta parece bastante simple... utilicemos un DateDiff, pero DateDiff solo entrega la Cantidad de meses entre ese Rango y en forma separada te entrega la cantidad de días entre ese rango de fechas. Pero no devuelve ambas al mismo tiempo.
 
Por ejemplo:
20/04/2006
25/05/2006
 
Debería dar 1 Mes y 5 días.
 
A continuación adjunto 2 pequeños programas uno que fue creado por un amigo Colombiano Jorge Mario Restrepo y el otro por mi, ambos dan el mismo resultado.
 
Dim TotalMes As Long
Dim
TotalDia As Long
Dim
TotalFec As Date
TotalMes = DateDiff(DateInterval.Month, dt1.Value, dt2.Value)
If Day(dt1.Value) > Day(dt2.Value) Then
 TotalMes = TotalMes - 1
End If
TotalFec = DateAdd(DateInterval.Month, TotalMes, dt1.Value)
TotalDia = DateDiff(DateInterval.Day, TotalFec, dt2.Value)
MsgBox("Meses :" & TotalMes & "   Dias :" & TotalDia)
 
Y este otro lo puse, ya que me costó bastante me fui por otro camino, pero llegamos al mismo resultado.
 
    Sub Calcular(ByVal f1 As Date, _
                 ByVal f2 As Date, _
                 ByRef Meses As Long, _
                 ByRef Dias As Long)
 
        'Cantidad de Días
        Dim F3 As TimeSpan, nf1 As Date, nf2 As Date
 
        F3 = f2.Subtract(f1)
 
        'Cantidad de Meses
        Meses = DateDiff(DateInterval.Month, f1, f2)
 
        nf1 = CDate(f1.ToString("01/MM/yyyy"))
 
        nf2 = DateAdd(DateInterval.Day, -1, CDate(f2.ToString("01/MM/yyyy")))
 
        Meses = DateDiff(DateInterval.Month, nf1, nf2)
        Dias = F3.Days - DateDiff(DateInterval.Day, nf1, nf2) + -1
 
        If Dias < 0 Then
            Dias = Dias + DateAdd(DateInterval.Month, 1, nf2).Day + 1
        End If
 
    End Sub

 
Y para llamar a la rutina anterior.
 
Dim Meses As Integer, _

Dias As Integer

Calcular(d1.Value, d2.Value, Meses, Dias)

MsgBox("Meses: " & Meses & " Días:" & Dias)

Por si alguien en algún momento le toca encontrar algo parecido.. espero les sirva.
 
Saludos,
Jhonny Vargas

Comments

# re: Como calcular la cantidad de meses y d&#237;as entre un Rango de Fechas.

Monday, September 25, 2006 11:45 AM by johegocr

Y que pasa con dt1 y dt2 o bien d1 y d2, que tipo de variables son y van declaradas en una funcion o donde porque no seeee. sorry, mi ignorancia, pero estoy empezando en esto

# re: Como calcular la cantidad de meses y días entre un Rango de Fechas.

Monday, April 14, 2008 12:01 AM by victor

la idea es que salga tantos años y meses dias transcurridos entre una y otra fecha, pero que no sea el total de totales:

ejemlo: 3 años y 2 mese y 5 dias ; algo asi

Leave a Comment

(required) 
(required) 
(optional)
(required)