Ver Mensaje Individual
  #8 (permalink)  
Antiguo 08/06/2010, 07:31
Avatar de lokoman
lokoman
 
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 6 meses
Puntos: 47
Respuesta: Calcular dias, meses y años entre dos fechas

Muy bueno el ejercicio!!
Aqui dejo el mini proyecto que hice:
http://myfreefilehosting.com/f/189ac8d9a1_0.03MB

Y el codigo que usé:
Código vb:
Ver original
  1. Private Sub Command1_Click()
  2.     Dim Mes(12) As Integer, Fecha1 As Date, Fecha2 As Date
  3.     Dim TotalMes As Long, TotalAno As Long
  4.     Dim Aux As Long, Aux2 As Long, DiferenciaDias As Long
  5.    
  6.     Fecha1 = DTPicker1.Value
  7.     Fecha2 = DTPicker2.Value
  8.    
  9.     Mes(1) = 31
  10.     Aux = DatePart("yyyy", Fecha1)
  11.    
  12.     If ((Aux / 4 = 0 And Aux / 100! = 0) Or Aux / 400 = 0) Then
  13.         Mes(2) = 29
  14.     Else
  15.         Mes(2) = 28
  16.     End If
  17.    
  18.     Mes(3) = 31
  19.     Mes(4) = 30
  20.     Mes(5) = 31
  21.     Mes(6) = 30
  22.     Mes(7) = 31
  23.     Mes(8) = 31
  24.     Mes(9) = 30
  25.     Mes(10) = 31
  26.     Mes(11) = 30
  27.     Mes(12) = 31
  28.    
  29.     TotalAno = 0
  30.     TotalMes = 0
  31.     DiferenciaDias = 0
  32.     Aux2 = 0
  33.    
  34.     Aux = DatePart("m", Fecha1)
  35.     DiferenciaDias = DateValue(Fecha2) - DateValue(Fecha1)
  36.     Aux2 = DiferenciaDias
  37.    
  38.     Do While Aux2 > 0
  39.         If Aux = 12 Then
  40.             Aux = 1
  41.         Else
  42.             Aux = Aux + 1
  43.         End If
  44.         Aux2 = (Aux2 - Mes(Aux))
  45.         TotalMes = TotalMes + 1
  46.     Loop
  47.    
  48.     If Aux2 < 0 Then TotalMes = TotalMes - 1
  49.     TotalAno = TotalMes / 12
  50.    
  51.     MsgBox "Total de dias...: " & FormatNumber(DiferenciaDias, 0) & vbNewLine & _
  52.            "Total de mes...: " & FormatNumber(TotalMes, 0) & vbNewLine & _
  53.            "Total años......: " & FormatNumber(TotalAno, 0)
  54. End Sub
  55.  
  56. Private Sub Form_Load()
  57.     DTPicker1.Value = Date
  58.     DTPicker2.Value = Date
  59. End Sub

Usé una referencia a Microsoft Windows Common Controls 2.6 para usar un DTPicker para la seleccion de las fechas, el resto en un Command Button.

!!