FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
#1
|
|||
|
|||
Resta de horas
Resta de horas
Estimados amigos del club como puedo restar dos horas Ejemplo1 : 12:00 - 14:00 = 2 horas bien Ejemplo2 : 08:00 - 12:00 = 4 horas bien Ejemplo3 : 22:00 – 08:00 = 14 horas malo deberian ser 10 horas Estoy trabajando con el componente TdatetimePicker Si alguien me sugiere otra se lo agradezco Gracias |
#2
|
||||
|
||||
Hola,
A ver qué tal esto:
|
#3
|
||||
|
||||
Que tal esto otro:
Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#4
|
||||
|
||||
El problema te ocurre porque debes estar restando la propiedad Time cuando en realidad debes utilizar la porpiedad DateTime.
Porque en tu caso las 08:00 son del día siguiente, y si no incluis la parte del día no se va a reflejar. Suerte
__________________
[Crandel] |
#5
|
|||
|
|||
resta de horas
Amigos del club he solucionado el problema de la siguiente manera, quizás no es la mas optima pero para mi problema esta OK, ya que necesito mostrar el día en un campo y la hora en otro aquí mando código por si alguien lo necesitara.
Gracias
Última edición por dec fecha: 02-01-2008 a las 17:44:20. |
#6
|
|||
|
|||
Restar horas
Probe el codigo me funciona para las horas pero en mi caso tambien nececito los minuto y segundos, para un sistema de control de ingreso de personal
gracias |
#7
|
||||
|
||||
Para ese caso, tenés también las funciones MinutesBetween y SecondsBetween.
Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#8
|
|||
|
|||
Gracias,
ahora solo tengo que realizar las operaciones correspondiente. |
#9
|
|||
|
|||
Resta de horas y minutos
Cita:
He revisado este hilo y me ha servido de mucha utilidad, tengo dos DateTimePicker, en los cuales se ingresa Hora de Inicio y Hora de Fin, en mi aplicación requiero restar las dos horas para obtener el tiempo ocupado. Tengo el siguiente código: procedure TForm_Soporte.DateTimePicker_HraIniChange(Sender: TObject); var dMiHraIni : TTime; var HraIniStr: string; begin dMiHraIni := DateTimePicker_HraIni.Time; HraIniStr := (TimeToStr(dMiHraIni)); self.DBEdit_HraIni.Text := HraIniStr; end; procedure TForm_Soporte.DateTimePicker_HraFinChange(Sender: TObject); var dMiHraFin, tiempo1, tiempo2 : TTime; var HraFinStr, dif_hra, dif_min, dif_seg, time: string; var dif_hra_int, dif_min_int : integer; var min_calc, seg_calc: integer; begin dMiHraFin := DateTimePicker_HraFin.Time; HraFinStr := (TimeToStr(dMiHraFin)); self.DBEdit_HraFin.Text := HraFinStr; tiempo1:= DateTimePicker_HraFin.Time; tiempo2:= DateTimePicker_HraIni.Time; dif_hra := inttostr(HoursBetween(tiempo2 , tiempo1)); dif_hra_int := strtoint(dif_hra); if dif_hra_int > 0 then begin min_calc := ((MinutesBetween(tiempo2 , tiempo1))mod (dif_hra_int * 60)); dif_min := inttostr(min_calc); end else begin dif_min := inttostr(MinutesBetween(tiempo2 , tiempo1)); end; if min_calc > 0 then begin seg_calc := (SecondsBetween(tiempo2 , tiempo1))mod (min_calc * 60); dif_seg := inttostr(seg_calc); end else begin dif_seg := inttostr(SecondsBetween(tiempo2 , tiempo1)); end; } time := dif_hra + ':'+ dif_min + ':'+ dif_seg; self.DBEdit_time.Text := time; self.DBEdit_time.Show end; Al restar las horas por ejemplo: 8:00 a 14:30 el resultado es de: 6:29 y no 6:30 como debería ser. Por fa si alguien tiene idea de lo que está pasando necesito una ayudita. Mil Gracias!! |
#10
|
|||
|
|||
Resta de horas y minutos
Cita:
He revisado este hilo y me ha servido de mucha utilidad, tengo dos DateTimePicker, en los cuales se ingresa Hora de Inicio y Hora de Fin, en mi aplicación requiero restar las dos horas para obtener el tiempo ocupado. Tengo el siguiente código: procedure TForm_Soporte.DateTimePicker_HraIniChange(Sender: TObject); var dMiHraIni : TTime; var HraIniStr: string; begin dMiHraIni := DateTimePicker_HraIni.Time; HraIniStr := (TimeToStr(dMiHraIni)); self.DBEdit_HraIni.Text := HraIniStr; end; procedure TForm_Soporte.DateTimePicker_HraFinChange(Sender: TObject); var dMiHraFin, tiempo1, tiempo2 : TTime; var HraFinStr, dif_hra, dif_min, dif_seg, time: string; var dif_hra_int, dif_min_int : integer; var min_calc, seg_calc: integer; begin dMiHraFin := DateTimePicker_HraFin.Time; HraFinStr := (TimeToStr(dMiHraFin)); self.DBEdit_HraFin.Text := HraFinStr; tiempo1:= DateTimePicker_HraFin.Time; tiempo2:= DateTimePicker_HraIni.Time; dif_hra := inttostr(HoursBetween(tiempo2 , tiempo1)); dif_hra_int := strtoint(dif_hra); if dif_hra_int > 0 then begin min_calc := ((MinutesBetween(tiempo2 , tiempo1))mod (dif_hra_int * 60)); dif_min := inttostr(min_calc); end else begin dif_min := inttostr(MinutesBetween(tiempo2 , tiempo1)); end; if min_calc > 0 then begin seg_calc := (SecondsBetween(tiempo2 , tiempo1))mod (min_calc * 60); dif_seg := inttostr(seg_calc); end else begin dif_seg := inttostr(SecondsBetween(tiempo2 , tiempo1)); end; } time := dif_hra + ':'+ dif_min + ':'+ dif_seg; self.DBEdit_time.Text := time; self.DBEdit_time.Show end; Al restar las horas por ejemplo: 8:00 a 14:30 el resultado es de: 6:29 y no 6:30 como debería ser. Por fa si alguien tiene idea de lo que está pasando necesito una ayudita. Mil Gracias!! |
#11
|
||||
|
||||
cuales son los segundos de los dos tiempos?
asegurate que sean cero sino te interesan.
__________________
[Crandel] |
#12
|
|||
|
|||
Resta horas y minutos
Gracias por tu preocupación amigo,
los segundos en la hora son cero, sin embargo no entiendo porque al restar las horas algunas veces saca datos exactos, pero en otros no como en el caso del ejemplo. Mil gracias por su ayuda Saludos |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|