Jump to content

Problemas restando horas y minutos, y otros afines.


Recommended Posts

Hola señores:

 

Soy yo de nuevo. Logré restar horas y minutos usando el Datediff sobre dos datetimepickers, pero pasaron dos problemas que se relacionaron:

 

1) al restar por minutos, lo hace la primera vez bien, pero al cambiar el valor de uno de los datetimepickers, transforma el resultado de horas en minutos, y para colmo, se los suma al resultado, logrando un resultado de, por ejemplo 119 minutos.

 

2) el resultado de dicha resta debe restarse a su vez a un número entero. Sé que son peras con manzanas, pero eso es lo que necesito.

 

Espero puedan darme alguna idea. Les dejaré el código de las restas de los datetimepickers. Nos vemos.

 

Dim fechaInicio As Date
 Dim fechaFinal As Date
 fechaInicio = cbo_h_i.Value
 fechaFinal = cbo_h_f.Value

 resultado = Abs(DateDiff(DateInterval.Hour, fechaInicio, fechaFinal))
 resultado2 = Abs(DateDiff(DateInterval.Minute, fechaInicio, fechaFinal))
 lb_indisponibilidad.Text = "" & resultado & ":" & resultado2

 

:8)

Link to comment
Share on other sites

:mmm: ¿Estás usando 2 DateTimePicker para seleccionar horas expresadas de la forma HH:mm? :nose:

 

Creo que sería mejor si subes una captura de tu aplicación, donde se vean los valores de los DateTimePicker y qué es lo que aparece como resultado de la operación (ya sea correcto o incorrecto); y en caso de ser incorrecto, qué debería aparecer.

 

Sobre la segunda pregunta, lo mismo, parece una mezcla de peras con manzanas, pero eso dependerá de qué representa el valor entero que tú mencionas (horas, minutos, milisegundos, ticks,...). Quizás haya que realizar alguna conversión antes de realizar la operación. Por favor, especifica qué representa (o unidad de medida) el valor entero.

 

De todas formas, aquí te dejo un código que calcula la diferencia entre dos horas (HH:mm) seleccionadas a través de sus correspondientes DateTimePicker:

[hide]

Dim fecha1, fecha2 As Date
Dim diff As TimeSpan
Dim hoy As Date = Date.Today

fecha1 = DateTimePicker1.Value
fecha2 = DateTimePicker2.Value
fecha1 = New Date(hoy.Year, hoy.Month, hoy.Day, fecha1.Hour, fecha1.Minute, 0)
fecha2 = New Date(hoy.Year, hoy.Month, hoy.Day, fecha2.Hour, fecha2.Minute, 0)
diff = fecha2.Subtract(fecha1).Duration()
Label1.Text = String.Format("{0:D2}:{1:D2}", diff.Hours, diff.Minutes)

 

vITcapt1b1h.png

[/hide]

Edited by susodicho
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...