Restar horas en Visual Studio 2008

Tengo un pequeño problema con un formulario de Asistencia de Personal, el cual me registra dos entradas y dos salidas (Hora de Entrada, Salida a Almorzar, Regreso de almorzar y Hora de Salida). Buscando encontré un código pero lo que pasa es que cuando resto las horas y minutos (no segundos) de entrada me sale correcto, pero cuando resto las salidas a almorzar o salida del trabajo me sale un minuto menos. Por ejemplo: Hora de Salida=20:00 y el trabajador marca antes es decir 19:50, en lugar de salir 00:10, sale 00:09 y creo que es por los segundos.

Todas las Hora de Entrada, Salida a Almorzar, Regreso de almorzar y Hora de Salida, son cargadas de una tabla en DateTimePicker porque son datos que deben estar almacenados, en cambio la hora de marcado las cargo directamente de la hora que sale automáticamente en el DateTimerPicker.

Este es el código de un button

Dim cadena As String
cadena = String.Format("{00:00}", (DateTimePicker7.Value) - (DateTimePicker8.Value))
LblSaS.Text = cadena.Substring(0, 5)
If LblSaS.Text < "0" Then
LblSaS.Text = "00:00"
End If

El DateTimePicker7.Value es la hora que debe salir el trabajador; y

El DateTimePicker8.Value es la hora que marca el trabajador;

LblSaS.Text es el Label donde envía la diferencia o resta de las horas.

1 Respuesta

Respuesta
1

Si la diferencia es por los segundos, te recomiendo que le coloques los segundos en cero para que te de el valor correcto.

Cuando le pongo los ceros a los segundos del DateTimerPicker de marcado allí si sale, pero eso no debo cambiarlo, ese control lo tengo desactivado, porque el trabajador no debe cambiar manualmente la hora de entrada. Con el BUTTON "Marcado" que le he puesto se efectúa la operación que requiero. Te agradecería me ayudaras en este problema.

Muchas gracias por contestar rápidamente ...

Por el programa le colocas los dos ceros de los segundos al tiempo

Lo hice también pero nada. no me funciona. Sigue saliendo un minuto menos. No quiero darme por vencido pero me esta quitando mucho tiempo ...

Ayuda por favor

La fácil es que como sabes que le quita 1 minuto, sumalo y ya tendrás el valor correcto.

También hice eso de sumarle 1, pero me sale un error. Parece que no hay solución aúnque no me doy por vencido.

Si es que tuvieras un ejemplo me ayudarías si lo publicas o me lo envias a mi correo.ç

Gracias

Coloca tu código a ver si puedo ayudarte

ESTE ES EL CÓDIGO DEL BUTTON

Dim cadena As String
cadena = String.Format("{00:00}", (DateTimePicker7.Value) - (DateTimePicker8.Value))
LblSaS.Text = cadena.Substring(0, 5)
If LblSaS.Text < "0" Then
LblSaS.Text = "00:00"
End If


El DateTimePicker7.Value es la hora que debe salir el trabajador; y
El DateTimePicker8.Value es la hora que marca el trabajador;
LblSaS.Text es el Label donde envía la diferencia o resta de las horas.

cadena = String.Format("{00:00}", (DateTimePicker7.Value.AddMinutes(1)) - (DateTimePicker8.Value))

Ahora si sale. Muchas gracias Experto por tu ayuda. Me sirvió mucho y ahora si puedo terminar mi proyecto.

Que Dios te bendiga para que sigas ayudando a los demás ...

Hasta una nueva oportunidad ...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas