Visual Basic - Ayuda! de 2 fechas sacar años meses y dias en VB6

Life is soft - evento anual de software empresarial
 
Vista:

Ayuda! de 2 fechas sacar años meses y dias en VB6

Publicado por gato (3 intervenciones) el 23/07/2007 19:05:41
Hola amigos quisiera ver si me pueden ayudar estoy trabajando en visual basic V6 y necesito calcular edades con una exactitud de dias, he usado la funcion, donde fecha es una fecha anterior a la actual
DIA = DateDiff("D", fecha, Date)
MES = DateDiff("M", fecha, Date)
AÑO = DateDiff("YYYY", fecha, Date)
resulta que la que calcula los años es inexacta si le doy la fecha por ejemplo 1/12/2006 al ejecutar esa funcion me da "1" y tendria que darme "0", asi que es incorrecto por que aun no se cumple el año, me gustaria que me pudieran ayudar con una funcion o rutina de VB ver 6, para calcular de una fecha anterior a la fecha actual en años, meses y dias pero que sea exacto por que estoy haciendo una aplicacion para niños que necesito una exactitud de horas.
una rutina que hice es esta pero no es exacta:
DIA = DateDiff("D", Text1(4), Date)
mes = DateDiff("M", Text1(4), Date)
AÑOS = Int(mes / 12)
MESES = mes - (AÑOS * 12)
DIAS = Int(DIA - ((AÑOS * 365) + (MESES * 30.41666666)))
If DIAS <= 0 Then
MESES = MESES - 1
DIAS = 29 + DIAS
End If
Text1(5).Text = AÑOS
Text1(6).Text = MESES
Text1(7).Text = DIAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda! de 2 fechas sacar años meses y dias en V

Publicado por Adrian (6 intervenciones) el 24/07/2007 19:29:39
Hola!
Te doy las fórmulas que uilice en excel y tiene su equivalencia en VB.

Donde A3 es Fecha Inicial, es tu Variable de Fecha
Donde B3 es tu fecha final, es tu variable de Fecha
Calculo Años netos
=AÑO(B3)-AÑO(A3)-SI(B3>=FECHA(AÑO(B3),MES(A3),DIA(A3)),0,1)
Calculo Meses Netos
=MES(B3)-MES(A3)+SI(B3>=FECHA(AÑO(B3),MES(A3),DIA(A3)),0,12)-SI(DIA(B3)>=DIA(A3),0,1)
Caluculo Dias Netos
=DIA(B3)-DIA(A3)+SI(DIA(B3)>=DIA(A3),0,DIA(FIN.MES(B3,-1)))

Funciones Equivalentes

Año Year - Si iif - Fecha Dateserial - Mes Month - Dia Day

Fin. Mes Aqui Va
Function FinMes(Fecha As Date) As Date
Dim Mes As Integer
Mes = IIf(Month(Fecha) + 1 = 13, 1, Month(Fecha) + 1)
FinMes = DateSerial(Year(Fecha), Mes, 1) - 1
End Function

Esto es muy poco profesional, no esta probada, por que conteseto desde un ciber sin VB.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda! de 2 fechas sacar años meses y dias en V

Publicado por Adrian (6 intervenciones) el 24/07/2007 19:34:29
Correción de la funcion FinMes.

Function FinMes(Fecha As Date) As Date
Dim Mes, Anio As Integer
Anio = IIf(Month(Fecha) + 1 = 13, Year(Fecha) + 1, Year(Fecha))
Mes = IIf(Month(Fecha) + 1 = 13, 1, Month(Fecha) + 1)
FinMes = DateSerial(Anio, Mes, 1) - 1
End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda! de 2 fechas sacar años meses y dias en V

Publicado por barca1010 (132 intervenciones) el 26/07/2007 14:59:42
yo te puedo dar este codigo que es un poco rebuscado pero que funciona

Dim Fecha1 as date

Fecha1 = DateAdd("m", 12, (tu fecha))

If Fecha1 >= (tu fecha2) Then
MsgBox " Cumpleaños"
Else
MsgBox " todavia"
End If
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar