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

problema con fechas y listbox

Estas en el tema de problema con fechas y listbox en el foro de Visual Basic clásico en Foros del Web. hola amigos.... estoy haciendo una aplicacion donde tengo que añadir fechas a un listbox que pueden ser ingresadas por el usuario o que la aplicacion ...
  #1 (permalink)  
Antiguo 05/08/2005, 13:30
Avatar de emilio21  
Fecha de Ingreso: enero-2005
Ubicación: Venezuela
Mensajes: 320
Antigüedad: 19 años, 4 meses
Puntos: 1
problema con fechas y listbox

hola amigos....

estoy haciendo una aplicacion donde tengo que añadir fechas a un listbox que pueden ser ingresadas por el usuario o que la aplicacion lo haga aleatoriamente. mi problema es el siguiente, yo quiero que cuando la fecha se genere aleatoriamente se haga de acuerdo a como la quiera el usuario, me explico, si el quiere que la fecha sea entre 06:00 hasta las 10:00 por ejemplo, y que en el listbox se ordenen las fechas desde las 00:00 hasta las 23:59, demas quiero que cuando se randomize las fechas no se repitan en el listbox, ok?

gracias
  #2 (permalink)  
Antiguo 06/08/2005, 08:25
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo

Cita:
Iniciado por emilio21
hola amigos....

estoy haciendo una aplicacion donde tengo que añadir fechas a un listbox que pueden ser ingresadas por el usuario o que la aplicacion lo haga aleatoriamente. mi problema es el siguiente, yo quiero que cuando la fecha se genere aleatoriamente se haga de acuerdo a como la quiera el usuario, me explico, si el quiere que la fecha sea entre 06:00 hasta las 10:00 por ejemplo, y que en el listbox se ordenen las fechas desde las 00:00 hasta las 23:59, demas quiero que cuando se randomize las fechas no se repitan en el listbox, ok?

gracias
Fechas u Horas????????
Si son Horas hice un código así:
Código:
Function IsTime(ByVal Texto As String) As Boolean
Dim Hora As String
Dim Min As String
If Len(Texto) <> 5 Then
    Exit Function
End If
Hora = Left$(Texto, 2)
Min = Right$(Texto, 2)
If Not IsNumeric(Hora) Or Not IsNumeric(Min) Then
    Exit Function
End If
If CInt(Hora) > 23 Or CInt(Hora) < 0 Or CInt(Min) > 59 Or CInt(Min) < 0 Then
    Exit Function
End If
IsTime = True
End Function
Private Sub Command1_Click()
Hora1$ = InputBox("Ingresa Hora Inicial", "Lista")
Hora2$ = InputBox("Ingresa Hora Final", "Lista")
If Not IsTime(Hora1$) Or Not IsTime(Hora2$) Then
    MsgBox "Hora no Válida", vbCritical, "Lista"
End If
a = HoraAleatoria(Hora1$, Hora2$)
List1.AddItem a
End Sub
Function HoraAleatoria(ByVal HoraInicial As String, ByVal HoraFinal As String) As String
If MinutosConvert(HoraInicial) >= MinutosConvert(HoraFinal) Then Exit Function
Max = MinutosConvert(HoraFinal) - MinutosConvert(HoraInicial)
Do
    Randomize
    Minutos = MinutosConvert(HoraInicial) + Int(Rnd * Max)
    HoraA = TimeConvert(Minutos)
    If FindListIndex(HoraA) = 0 Then
        HoraAleatoria = HoraA
        Exit Do
    End If
Loop
End Function
Function FindListIndex(ByVal Texto As String) As Integer
For I = 0 To List1.ListCount - 1
    Buscar = List1.List(I)
    If Buscar = Texto Then
        FindListIndex = I
        Exit Function
    End If
Next I
End Function
Function MinutosConvert(ByVal Texto As String) As Integer
Dim Hora As String
Dim Min As String
Hora = Left$(Texto, 2)
Min = Right$(Texto, 2)
MinutosConvert = (CInt(Hora) * 60) + CInt(Min)
End Function
Function TimeConvert(ByVal Minutos As Integer) As String
Hora = CStr(Minutos \ 60)
Minuto = CStr(Minutos - (CInt(Hora) * 60))
TimeConvert = Format$(Hora, "00") & ":" & Format$(Minuto, "00")
End Function
Es algo larguito, por eso, si alguno de ustedes tiene alguna forma mejor, sería bienvenido
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
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 00:25.