Asunto: Obtener años, días y meses a partir de un número de días
Estoy desarrollando una aplicación en Visual Basic 6, una de las opciones es que me muestre el número de años, meses y días a partir de un número de días.
En realidad lo que quiero es calcular el número de años, número de meses y número de días entre dos fechas.
¿cómo puedo hacer esto? ¿tiene Visual Basic funciones para hacerlo?
Publicado:
Mie Sep 23, 2009 8:22 am
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: Obtener años, días y meses a partir de un número de días
Anuncios
varios escribió:
Estoy desarrollando una aplicación en Visual Basic 6, una de las opciones es que me muestre el número de años, meses y días a partir de un número de días.
En realidad lo que quiero es calcular el número de años, número de meses y número de días entre dos fechas.
¿cómo puedo hacer esto? ¿tiene Visual Basic funciones para hacerlo?
Tal vez te pueda servir esta función (Visual Basic no incluye una función que devuelva los años, meses y días entre dos fechas):
Código:
Option Explicit
Function anosMesesDias(fechaInicio As Date, _
fechaFin As Date) As String
Dim anos, meses, dias, m As Integer
anos = Year(fechaFin) - Year(fechaInicio)
If Month(fechaInicio) > Month(fechaFin) Then
anos = anos - 1
End If
If Month(fechaFin) < Month(fechaInicio) Then
meses = 12 - Month(fechaInicio) + Month(fechaFin)
Else
meses = Month(fechaFin) - Month(fechaInicio)
End If
If Day(fechaFin) < Day(fechaInicio) Then
meses = meses - 1
If Month(fechaFin) = Month(fechaInicio) Then
anos = anos - 1
meses = 11
End If
End If
dias = Day(fechaFin) - Day(fechaInicio)
If dias < 0 Then
m = CInt(Month(fechaFin)) - 1
If m = 0 Then
m = 12
End If
Select Case m
Case 1, 3, 5, 7, 8, 10, 12
dias = 31 + dias
Case 4, 6, 9, 11
dias = 30 + dias
Case 2
If (Year(fechaFin) Mod 4 = 0 And _
Year(fechaFin) Mod 100 <> 0) _
Or Year(fechaFin) Mod 400 = 0 Then
dias = 29 + dias
Else
dias = 28 + dias
End If
End Select
End If
anosMesesDias = CStr(anos) + " años, " + CStr(meses) _
+ " meses, " + CStr(dias) + " días "
End Function
Un ejemplo simple de uso:
Código:
Private Sub btObtenerDuracion_Click()
MsgBox anosMesesDias(CDate("01-01-2000"), Now)
End Sub
Para "01-01-2000", comparado con "23-09-2009", devolverá:
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A