Ver Mensaje Individual
  #7 (permalink)  
Antiguo 07/06/2010, 11:39
fiorella3247
 
Fecha de Ingreso: febrero-2009
Mensajes: 101
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Calcular dias, meses y años entre dos fechas

Hola Lokoman...
Al fin resolvi... Buscando en la web encontre este ejercicio... No usa mucho las funciones de vb 6.0 ... mas que todo es logica... Estaba hecho en php ... pero lo adapte a vb !!! Y lo mejor de todo es que funciona a la perfección...

Te lo dejo para que lo pruebes!!! Muchas gracias

Código vb:
Ver original
  1. Public Function Calcular(FechaInicio As Date, FechaActual As Date) As String
  2.  
  3. diaActual = DatePart("d", FechaActual)      
  4. mesActual = DatePart("m", FechaActual)      
  5. anioActual = DatePart("yyyy", FechaActual)  
  6. '**************************************'
  7. diaInicio = DatePart("d", FechaInicio)      
  8. mesInicio = DatePart("m", FechaInicio)      
  9. anioInicio = DatePart("yyyy", FechaInicio)      
  10.  
  11. B = 0
  12. Mes = mesInicio - 1
  13.  
  14. ' si el mes es febrero
  15. If (Mes = 2) Then   ' *
  16.    If ((anioActual / 4 = 0 And anioActual / 100! = 0) Or anioActual / 400 = 0) Then
  17.         B = 29
  18.     Else
  19.         B = 28
  20.     End If
  21. ElseIf (Mes <= 7) Then  '*
  22.    If (Mes = 0) Then
  23.         B = 31
  24.     ElseIf (Mes / 2 = 0) Then
  25.         B = 30
  26.     Else
  27.         B = 31
  28.     End If
  29.    
  30. ElseIf (Mes > 7) Then
  31.     If (Mes / 2 = 0) Then
  32.         B = 31
  33.     Else
  34.         B = 30
  35.     End If
  36. End If
  37.    
  38.    If ((anioInicio > anioActual) Or (anioInicio = anioActual And mesInicio > mesActual) Or (anioInicio = anioActual And mesInicio = mesActual And diaInicio > diaActual)) Then
  39.         MsgBox "La fecha de inicio ha de ser anterior a la fecha Actual"
  40.    Else
  41.         If (mesInicio <= mesActual) Then
  42.             Anios = anioActual - anioInicio
  43.             If (diaInicio <= diaActual) Then
  44.                 Meses = mesActual - mesInicio
  45.                 Dias = diaActual - diaInicio
  46.             Else
  47.                 If (mesActual = mesInicio) Then
  48.                     Anios = Anios - 1
  49.                 End If
  50.                 Meses = (mesActual - mesInicio - 1 + 12) / 12
  51.                 Dias = B - (diaInicio - diaActual)
  52.             End If
  53.         Else
  54.             Anios = anioActual - anioInicio - 1
  55.  
  56.         If (diaInicio > diaActual) Then
  57.             Meses = mesActual - mesInicio - 1 + 12
  58.             Dias = B - (diaInicio - diaActual)
  59.         Else
  60.             Meses = mesActual - mesInicio + 12
  61.             Dias = diaActual - diaInicio
  62.         End If
  63.   End If
  64.  
  65. End If '*
  66.  
  67. Calcular = Anios & "/" & Meses & "/" & Dias
  68.  
  69. End Function

La funcion DatePart ... toma la parte de la fecha dependiendo del parametro ...

Saludos y Éxitos
__________________
Fiorellita