Como puedo cambiar la Hora a numero en un DTPicker para usarlo en una barra de progreso?

Consulta, Si tengo un DTPicker y necesito sacar el valor y convertirlo en numero para poder ocuparlo en una barra de progreso y colocar el máximo con el valor del DTPicker, pero ya estos dos datos son diferentes. Habrá alguna posibilidad de lograr hacer esa conversión. Gracias de antemano Visual Basic 6.0

Respuesta
3

Vamos a ver si me explico. Ni las fechas ni las horas existen como tal, sólo existen números. Las horas son decimales de día. Por ejemplo, si tengo un dtpicker y un cuadro de texto Texto38. Le he añadido un botón de comando( ya que no sé como trabajas) donde en el evento Al hacer clic le digo

Private Sub Comando40_Click()
Texto38 = DTPicker7.Value
End Sub

Si elijo 21/07/2019 y como no le digo nada más, me coje la hora del sistema de ese día. Al pulsar el botón

Es decir el día 43698 a contar desde el 01/01/1900 y la hora( en decimal)

0.77133102 de ese día

dale entiendo ahora eso, por eso me arrojaba un numero inmenso, entonces ese numero que entrega el value puedo ocuparlo de alguna forma?

Trabajo con visualBasic 6.0 y necesito que el valor de un dtpicker que esta en time colocarlo en la propiedad Max de una barra de progreso, mira esto es lo que tengo.

tiempoAsignado = dtpTiempoAsignado.Value

pgbBarraTiempo.Max = tiempoAsignado 'Aqui 
    For i = o To pgbBarraTiempo.Max
    pgbBarraTiempo.Value = i

'Mostrar el porcentaje del progreso
    lblPorcentajeBarra = CLng((pgbBarraTiempo.Value * 100) / pgbBarraTiempo.Max) & " %"
DoEvents
Next i

Personalmente usaría el evento Al Cronómetro e Intervalo de cronómetro. Por ejemplo. Tengo la diferencia de fechas(sería igual con fecha y hora

Texto8 es la diferencia en días entre esas dos fechas. También le he añadido un cuadro de texto( el azul) con una anchura de 0,2 cm. Y en el botón, pero sería en otro evento le pongo

Private Sub Comando12_Click()
Me.TimerInterval = 100
End Sub

Para que cada décima de segundo me "recalcule" las dimensiones de ese cuadro de texto Texto10. Y en el evento Al cronómetro del cuadro de texto Texto10 le pongo

Private Sub Form_Timer()
Texto10.Width = Texto10.Width + 0.2 * 567
If Texto10.Width >= 6 * 567 Then
Me.TimerInterval = 0
End If
End Sub

Es decir, que cada medio segundo, el cuadro de texto(que va a servir como barra de progreso) se duplique, pero cuando llegue al tamaño que yo decida, en este caso 6 cm, no "crezca" más. Y cuando pulso el botón( te pongo sólo dos imágenes para que veas como progresa)

Y ahí se para. Tú tendrías que decidir en que evento "inicia" el progreso y cuando se debe parar, y la condición para que pare.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas