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

Cambiar formato de fecha

Estas en el tema de Cambiar formato de fecha en el foro de Visual Basic clásico en Foros del Web. Que tal de nuevo aqui con una consulta les explico tengo un textbox del cual obtengo una fecha en formato largo es decir "Miercoles, 02 ...
  #1 (permalink)  
Antiguo 02/07/2008, 18:48
 
Fecha de Ingreso: abril-2008
Mensajes: 281
Antigüedad: 16 años, 1 mes
Puntos: 1
Cambiar formato de fecha

Que tal de nuevo aqui con una consulta les explico tengo un textbox del cual obtengo una fecha en formato largo es decir "Miercoles, 02 de Julio de 2008" y de ahi quiero obtener para llenar otros texbox con la fecha pero en formato corto "02/07/08", bueno el codigo q tengo hasta ahorita y q ya me llena el textbox es el siguiente:

Código:
Private Sub FechasActivas()
    Dim x As Integer
    
    For x = 200 To 247
        Text2(x).Text = Text1(0).Text
    Next
End Sub
Saludos y Gracias por la ayuda
  #2 (permalink)  
Antiguo 03/07/2008, 01:46
Avatar de Txoco  
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 189
Antigüedad: 15 años, 11 meses
Puntos: 7
Respuesta: Cambiar formato de fecha

Hola!

Hasta donde yo se, no se puede convertir una fecha en formato largo de forma automática, entre otras cosas por aquello de las localizaciones (no todos los paises usan el mismo formato).

Este código fue un experimento que hice para salir del paso, probablemente te sirva de guía:

Código:
Public Function LongToShortDate(ByVal wFecha As String) As Long
Dim vComp()     As String
Dim nMes        As Long

    LongToShortDate = 0
    
    vComp = Split(wFecha, " ")
    
    nMes = InStr(1, "ene feb mar abr may jun jul ago sep oct nov dic", Left(vComp(3), 3), vbTextCompare)
    
    LongToShortDate = CDate(vComp(1) & "/" & Format((nMes / 4) + 1, "00") & "/" & vComp(5))
    
    Erase vComp
End Function
Ten en cuenta que esa función necesita que la fecha de entrada tenga un formato "<lo que sea> <dia> <lo que sea> <mes en letras (al menos 3)> <lo que sea> <año>" (los espacios son vitales) y que la fecha es devuelta como un número a partir del formato "dd/MM/yyyy" (suelo trabajar las fechas como números, es más cómodo para mí).

Por ejemplo, la llamada a
Código:
Format(LongToShortDate("jue, 03 de Julio de 2008"), "Short Date")
devuelve "03/07/2008".

Te recuerdo que este código fue para salir del paso en una situación concreta, así que debes añadirle todas las comprobaciones que se te ocurran para evitar problemas cuando pongas tu aplicación en producción. De hecho, si el mes no está escrito correctamente, te dará un error:

Código:
Format(LongToShortDate("jue, 03 de Kulio de 2008"), "Short Date")  ' Debacle! =]
Saludos!

Última edición por Txoco; 03/07/2008 a las 01:49 Razón: Completar algunos detalles
  #3 (permalink)  
Antiguo 03/07/2008, 02:34
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Cambiar formato de fecha

Hola,

otro truco sería almacenar la fecha corta en la propiedad Tag del Text1(0):

Código PHP:
Text1(0).Text Format(Date"Long Date")
Text1(0).Tag Format(Date"Short Date")
For 
200 To 247
    Text2
(x).Text Text1(0).Tag
Next 
  #4 (permalink)  
Antiguo 03/07/2008, 04:35
Avatar de Txoco  
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 189
Antigüedad: 15 años, 11 meses
Puntos: 7
Respuesta: Cambiar formato de fecha

Cita:
Iniciado por Avellaneda Ver Mensaje
otro truco sería almacenar la fecha corta en la propiedad Tag del Text1(0):
Touché. Mira que me complico la vida a veces
  #5 (permalink)  
Antiguo 03/07/2008, 06:24
 
Fecha de Ingreso: abril-2008
Mensajes: 281
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Cambiar formato de fecha

Listo quedo perfectamente muchas gracias por su ayuda

Saludos
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:24.