Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

fechas en visual basic 6.0?

Estas en el tema de fechas en visual basic 6.0? en el foro de Visual Basic clásico en Foros del Web. hola, quisiera que me ayudaran con esto. estoy realizando un sistema y no encuentro o no se como validar que cuando se valla a ingresar ...
  #1 (permalink)  
Antiguo 06/07/2008, 10:23
 
Fecha de Ingreso: julio-2008
Mensajes: 205
Antigüedad: 15 años, 9 meses
Puntos: 1
fechas en visual basic 6.0?

hola, quisiera que me ayudaran con esto. estoy realizando un sistema y no encuentro o no se como validar que cuando se valla a ingresar a un empleado nuevo su fecha de nacimiento no sea igual a la fecha actual del sistema. por ejemplo si hoy es 06/06/2008 y se este registrando a un empleado su fecha de nacimiento no puede ser la misma fecha de hoy y, creo que tampoco 1 i 2 ni 3 etc años menos, ayudenme porfa , espero me entiendan.
  #2 (permalink)  
Antiguo 06/07/2008, 16:41
Avatar de Txoco  
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 189
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: fechas en visual basic 6.0?

Hola!

Tienes disponibles las funciones Day, Month y Year, que te devuelven respectivamente el día, el mes o el año de la fecha que les pases.

Es decir, Day("07/08/2008") devuelve 7, Month("07/08/2008") devuelve 8 y Year("07/08/2008") devuelve 2008. Con esto, la comprobación es fácil.
  #3 (permalink)  
Antiguo 06/07/2008, 19:03
 
Fecha de Ingreso: julio-2008
Ubicación: Rosario
Mensajes: 26
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: fechas en visual basic 6.0?

Cita:
Iniciado por principefreddy Ver Mensaje
hola, quisiera que me ayudaran con esto. estoy realizando un sistema y no encuentro o no se como validar que cuando se valla a ingresar a un empleado nuevo su fecha de nacimiento no sea igual a la fecha actual del sistema. por ejemplo si hoy es 06/06/2008 y se este registrando a un empleado su fecha de nacimiento no puede ser la misma fecha de hoy y, creo que tampoco 1 i 2 ni 3 etc años menos, ayudenme porfa , espero me entiendan.
Si necesitas ver la diferencia entre 2 fechas, te recomiendo la funcion "DateDiff"
Por ejemplo

Dim fechaNac As Date

fechaNac = "17/09/1978" 'Aca estaria la fecha de nacimiento de tu empleado

dif = DateDiff("yyyy", fechaNac, Date)
'El resultado de la variable diff seria un entero con los años entre fechaNac y date (que es la fecha de hoy)

Espero que te sea útil
  #4 (permalink)  
Antiguo 07/07/2008, 01:28
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 2 meses
Puntos: 37
Respuesta: fechas en visual basic 6.0?

Cita:
Iniciado por principefreddy Ver Mensaje
hola, quisiera que me ayudaran con esto. estoy realizando un sistema y no encuentro o no se como validar que cuando se valla a ingresar a un empleado nuevo su fecha de nacimiento no sea igual a la fecha actual del sistema. por ejemplo si hoy es 06/06/2008 y se este registrando a un empleado su fecha de nacimiento no puede ser la misma fecha de hoy y, creo que tampoco 1 i 2 ni 3 etc años menos, ayudenme porfa , espero me entiendan.
Hola,

para calcular la edad, puedes utilizar una función como esta, que devuelve un Long con la edad exacta:

Código:
Function CalculaEdad(ByVal DataIni As Date) As Long
CalculaEdad = DateDiff("yyyy", DataIni, Date)

If (Month(DataIni) > Month(Date)) Or (Month(DataIni) = Month(Date) _
    And Day(DataIni) > Day(Date)) Then CalculaEdad = CalculaEdad - 1
End Function
Y la llamarías así desde un CommandButton o el evento LostFocus (suponemos que la fecha se ha escrito en un TextBox <Text1>):

Código:
Dim iAños As Integer
If Not IsDate(Text1.Text) Then
    MsgBox "La fecha no es correcta"
    Text1.SetFocus
    Exit Sub
End If
iAños = CalculaEdad(Text1)
MsgBox "Tienes " & iAños & " años."
If iAños < 14 Then MsgBox "Los menores de 14 años no pueden trabajar"
  #5 (permalink)  
Antiguo 07/07/2008, 02:55
Avatar de Txoco  
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 189
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: fechas en visual basic 6.0?

O más fácil aún:

Código:
 
Public Function CalculaEdad(ByVal DataIni As Date) As Long
    CalculaEdad = Year(Date - DataIni) - 1900
End Function
Internamente, las fechas se tratan como números (Double, para ser exactos, la parte decimal tiene la hora). Si haces operaciones directamente con fechas, el resultado es el número de días entre ambas. Las fechas se cuentan a partir del 30 de diciembre de 1899, puedes ver la fecha correspondiente a cero días si ejecutas esta instrucción:

Código:
 
format(cdate(0), "dd/MM/yyyy hh:mm:ss")
Por tanto, de ahí que haya que restar 1900 al resultado de Year.

Realmente, la forma óptima de calcularlo sería:

Código:
 
CalculaEdad = Year(Date - DataIni) - Year(0) - 1 
ya que así te curas en salud por si más adelante Microsoft decide que el día 0 corresponde a otra fecha, tienes en cuenta los años bisiestos y haces menos comprobaciones.

Yo había entendido que lo que te interesaba era saber si el día y el mes coincidían, independientemente del número de años. Pues si era eso, esto es mejor aún que lo que te había propuesto al principio:

Código:
 
Public Function MismoDiaYMes(Fecha As Date) as Boolean
    MismoDiaYMes = Format(Date, "ddmm") = Format(Fecha, "ddmm")
End Function

Última edición por Txoco; 07/07/2008 a las 03:05 Razón: Yo entendí... =]
  #6 (permalink)  
Antiguo 07/07/2008, 15:22
 
Fecha de Ingreso: julio-2008
Mensajes: 205
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: fechas en visual basic 6.0?

gracias por las respuestas. estoy muy agradecido
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:00.