Spanish [SOLUCIONADO] Consulta DateTime.Now

Discussion in 'Spanish Forum' started by cas6678, Aug 25, 2015.

  1. cas6678

    cas6678 Active Member Licensed User

    Hola, a ver si me podeis ayudar con esto, si pongo...

    Code:
    ahora=DateTime.Now
    crono=ahora-ahora

    Code:
    Labelhora.Text=  ahora
    Labelcrono.Text=  crono
    ...me devuelve
    la hora actual en milisegundos desde 01/01/70
    y 0

    Sin embargo, si pongo...

    Code:
    Labelcrono.Text= DateTime.Time(ahora)
    Labelcrono.Text= 
    DateTime.Time(crono)
    ...me devuelve
    la hora actual en formato hh:mm:ss
    y 01:00:00

    Yo esperaba recibir 00:00:00

    No entiendo porque el 0 se asimila a la hora "1"

    Realmente no hago crono=ahora-ahora (no tendria mucho sentido) si no crono=ahora-datox para poner a 0 un cronometro pero para el caso el ejemplo es el mismo.

    Alguna idea? hago algo mal? Gracias.
     
  2. bgsoft

    bgsoft Well-Known Member Licensed User

    Hola

    Estuve fuera y de nuevo me subo aqui.

    Creo que lo que quieres hacer es un cronometro, como tu dices, la hora te la da en milisegundos desde 1970, si lo que quieres es ver como aumenta ese cronometro, tendrias que hacer algo asi:

    Code:
    InicioCrono = DateTime.Now ' ponerlo cuando reinicies el cronómetro


    TiempoTranscurrido = 
    DateTime.Now- InicioCrono ' dale el formato que quieras a TiempoTranscurrido
    Saludos
     
  3. cas6678

    cas6678 Active Member Licensed User

    Hola Jesus,

    Si, es un cronometro pero no tengo problemas con hacerlo sino con el formato de salida. Por ejemplo si hago lo que tu me dices y muestro:

    Code:
    label.Text=TiempoTransacurrido
    ....me muestra un contador en milisegundos desde 0, ok.

    pero si muestro
    Code:
    label.Text=DateTime.Time(Tiempotranscurrido)
    ...me muestra un contador en formato horario desde 01:00:00, mal (aunque la variable TiempoTranscurrido empiece desde 0)

    Yo lo que busco es que el 0 sea 00:00:00 como no podria ser de otra manera ;) De hecho estoy haciendo de momento una pequeña trampa que es quitarle los 3600000 milisegundos que tiene una hora:

    Code:
    label.Text=DateTime.Time(Tiempotranscurrido-3600000)
    Pero bueno, me gustaria saber donde esta el problema.


    Gracias por tu colaboracion.
     
  4. bgsoft

    bgsoft Well-Known Member Licensed User

    Hola

    No es un problema de la fecha, si no de formato, puedes hacer esto:

    Code:
    label.Text =NumberFormat(DateTime.GetHour(Tiempotranscurrido),2,0) & ":" &  NumberFormat(DateTime.GetMinute(Tiempotranscurrido),2,0) & ":" & NumberFormat(DateTime.GetSecond(Tiempotranscurrido),2,0)
    Saludos
     
  5. bgsoft

    bgsoft Well-Known Member Licensed User

    Hola

    Ya que la pregunta quedó resuelta, podrias poner en la cabecera [SOLUCIONADO], asi hacemos mas agil el foro, gracias.

    Saludos
     
  6. cas6678

    cas6678 Active Member Licensed User

    No te creas, jejj.

    Si que hay solucion practica al tema pero sigo sin entender por que cuando el valor de una variable (que yo uso para el tiempo) es 0, la presentacion que hace DateTime.time es 01:00:00 y no 00:00:00. Vale que es una cuestion de formato y que tu solucion es operativa, (tambien lo era la mia al restarle 3600000 milisegundos) pero sigo sin encontrar que es lo no alcanzo a ver aun.

    Lo dejo un par de dias y luego corrijo el titulo, gracias.
     
  7. bgsoft

    bgsoft Well-Known Member Licensed User

    Hola cas6678

    Tu buscabas una solucion a tu problema y se resolvió, otra cosa es que ahora busques el por que de las cosas "raras" :D .
    El DateTime.Time funciona como es, y en el intervienen mas factores que el que le pases un valor que vale 0 y quieras que te devuelva 0, ya que los milisegundos que tienes que pasarle es desde el 01-01-1970, asi que si quieres que funcione como tu quieres, antes pon la zona horaria a 0, y entonces DateTime.Time te devolverá 00:00:00

    Code:
    Tiempotranscurrido = 0
    DateTime.SetTimeZone(0)

    Log(DateTime.Time(Tiempotranscurrido)) ' te devolverá 00:00:00

    Espero que con esto se hayan resuelto tus dudas, si no, me lo dices y yo te las amplio :D (es broma)

    Saludos
     
  8. cas6678

    cas6678 Active Member Licensed User

    Ahora si que esta clara la razon. Muchas gracias.
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice