Visual Basic - FECHAS años,meses y dias

Life is soft - evento anual de software empresarial
 
Vista:

FECHAS años,meses y dias

Publicado por antonio (62 intervenciones) el 30/11/2009 17:24:21
hola, NECESITO UN CABLECILLO.....

necesito volcar la informacion referente a dos fechas...de forma que se exprese la diferencia, de años meses y dias entre esas dos fechas,,,es decir..

diferencia entre fechas 01/01/2000 y 05/10/2015

el resultado

text1.text= dias 5
text2.text= meses 10
text3.text=años 14

es decir saber cuantos años completos, meses restantes y dias forman el resultado.

gracias
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:FECHAS años,meses y dias

Publicado por Llaverin (70 intervenciones) el 30/11/2009 18:11:46
Hola Antonio:
Entiendo que son fechas que anteriormente las ha introducido el usuario, no??
Por ejemplo:
Fecha1.text = "01/01/2000"
Fecha2.text = "05/10/2015"

Lo que hacemos es separamos el día, mes y año, de cada fecha introducida
Cogemos la fecha 1:
vDia1 = date(Fecha1.text)
vMes1 = Month(Fecha1.text)
vYear1 = Year(Fecha1.text)

Cogemos la fecha 2:
vDia2 = date(Fecha2.text)
vMes2 = Month(Fecha2.text)
vYear2 = Year(Fecha2.text)

Y ahora restamos, y a la vez concatenamos:
text1.text= dias & " " & (vDia2-vDia1)
text2.text= meses & " " & (vMes2-vMes1)
text3.text=años & " " & (vYear2-vYear1)

No se si esto te valdrá.

Saludos
Llaverin
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:FECHAS años,meses y dias

Publicado por antonio (62 intervenciones) el 30/11/2009 20:58:06
Muchisimas gracias, era lo que necesitaba...

he modificado
vDia1 = date(Fecha1.text) por vDia1 = day(Fecha1.text) ya que producia fallo, pero por lo demas muy bien.

he llamado la variables del tipo DATE, creo es asi verdad?
Dim vMes1 As Date

Muy agradecido
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:FECHAS años,meses y dias

Publicado por antonio (62 intervenciones) el 30/11/2009 21:12:19
Aprovechando tus amplios conocimientos.....

seria posible que en un ejemplo como este
entre estas dos fechas
30/11/2000 01/11/2009

existen 9 años 0 meses -29 dias

seria posible y como, que el el resultado fuese

8 meses 11 meses y 3 dias????

es decir que no redondee el año hasta cumplidos los 12 meses??

gracias
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:FECHAS años,meses y dias

Publicado por Llaverin (70 intervenciones) el 01/12/2009 11:23:54
Hola Antonio:
Vamos a ver, no se si sería posible esa duda que formulas, pero yo no la sé. La verdad, no entiendo porque quieres que salga ese resultado.

Si se me ocurre alguna manera de hacerlo, te lo haría saber.

Saludos
Llaverin
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:FECHAS años,meses y dias

Publicado por Pedro Luis (878 intervenciones) el 01/12/2009 11:52:56
Todo esto lo he hecho en inmediato, resulta laborioso pero quizas se pueda automatizar.

?cdate("1/11/2009")-cdate ("30-11-2000")
3258 dias trascurridos entre las dos fechas

?3258/365
8'92602739726027 años transcurridos (8)

si añadimos esos 8 años a la fecha primera tenemos

?cdate("1-11-2009")-cdate("30-11-2008")
336 dias ademas de los 8 años

?336/30
11'2 meses (11)

añadimos ahora los meses a la fecha que teniamos
? dateadd("m",11,"30-11-2008")
30-10-2009

?cdate("1-11-2009")-cdate("30-10-2009")
2 dias

Me sale 8 años 11 meses y 2 dias
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
Imágen de perfil de Wilfredo Patricio
Val: 8
Ha aumentado su posición en 9 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

RE:FECHAS años,meses y dias

Publicado por Wilfredo Patricio (120 intervenciones) el 03/12/2009 05:26:45
Hola

La solucion a su problema es usar la funcion DateDiff, con eso ponen el intervalo en dias y comparan, algo muy simple de realizar.

Saludos cordiales
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:FECHAS años,meses y dias

Publicado por ANTONIO (62 intervenciones) el 06/12/2009 19:36:57
Muchas gracias por la atencion prestada, HA SIDO DE UTILIDAD....cordiales saludos
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:FECHAS años,meses y dias

Publicado por José Luis (1 intervención) el 27/02/2010 17:13:31
Buenas, Antonio.

Hice una función que igual te sirve.

Public Function Calcular_Edad(ByVal Fecha As String) As String
'Fecha: Fecha sobre la que se calcula la edad en formato "ddmmaaaa" sin guiones ni barras.

Dim Dia As String = Mid(Fecha, 1, 2)
Dim Mes As String = Mid(Fecha, 3, 2)
Dim Anio As String = Mid(Fecha, 5, 4)
Dim Dia_Hoy As String = Mid(Today, 1, 2)
Dim Mes_Hoy As String = Mid(Today, 4, 2)
Dim Anio_Hoy As String = Mid(Today, 7, 4)

Dim Anios As Short
Dim Meses As Short
Dim Dias As Short

Anios = Anio_Hoy - Anio
If Val(Mes_Hoy & Dia_Hoy) < Val(Mes & Dia) Then
Anios = Anios - 1
End If

If Anios = 0 Then
If Val(Mes_Hoy) < Val(Mes) Then
Mes_Hoy = Mes_Hoy + 12
End If
Meses = Val(Mes_Hoy) - Val(Mes)
If Val(Dia_Hoy) < Val(Dia) Then
Meses = Meses - 1
End If

If Meses = 0 Then
Dias = DateDiff(DateInterval.Day, DateSerial(Anio, Mes, Dia), DateSerial(Anio_Hoy, Mes_Hoy, Dia_Hoy))
If Dias = 1 Then
Calcular_Edad = Dias & " día"
Else
Calcular_Edad = Dias & " días"
End If
Else
If Meses = 1 Then
Calcular_Edad = Meses & " mes"
Else
Calcular_Edad = Meses & " meses"
End If
End If
Else
If Anios = 1 Then
Calcular_Edad = Anios & " año"
Else
Calcular_Edad = Anios & " años"
End If
End If
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