Funcion para obtener los minutos entre 2 Horas
Saludos amigos, resulta que estoy haciendo un modulo para controlar la asistencia de docentes en un Centro Pre Universitario, este modulo permitirá calcular los salarios de dichos docentes.
Tengo una tabla con los horarios del Docente:
Y Tengo una tabla para registrar las asistencias de los docentes:
Como puede verse aqui: Necesito grabar la hora de entrada tomando la hora del equipo y calcular la diferencia en minutos de la hora tomada del sistema con la hora de inicio de su horario, ejemplo: Hora del Sistema: 14:02:00 Hora de Inicio Horario Docente: 14:00:00 La rutina debería arrojar -2 min (negativo) dado que se esta registrando pasados dos minutos de su hora de ingreso. Mientras que: Hora del Sistema: 13:57:00 Hora de Inicio Horario Docente: 14:00:00 La rutina debería arrojar 3 min (positivo). Intente usando la función HourSpan() pero no arroja el valor negativo como deseo: Aqui les muestro mi rompecabezas de codigo:
Les agradecería mucho apoyo con este problema, pues ya me quede sin ideas. Un Abrazo |
Saludos,
Yo lo haría así: ... Pero como no sé qué versión de Delphi, ni qué componentes de acceso a base datos usa, pues puedo estar muy equivocado. De todas maneras, espero que le sirva para guiarse. - |
Detalles
Gracias TOPX, aqui te doy detalles de mi plataforma de desarrollo:
Delphi: 10.1 Berlin Data Access: UniDAC 6.2.8 La pantalla con el codigo que me suministraste: https://s10.postimg.org/ceslputeh/scr.jpg Pero no puedo interpretar el resultado que obtuve. Te agradecería tu ayuda amigo. Saludos |
Detalles
Gracias TOPX, aqui te doy detalles de mi plataforma de desarrollo:
Delphi: 10.1 Berlin Data Access: UniDAC 6.2.8 La pantalla con el codigo que me suministraste: https://s10.postimg.org/ceslputeh/scr.jpg Pero no puedo interpretar el resultado que obtuve. Aqui esta el codigo:
Te agradecería tu ayuda amigo. Saludos |
Ciertamente, 15:44:32 - 14:40:00 no da 00:44:21.
Pero, la diferencia con lo esperado es muy poca, así que sospecho que
- Fe de erratas:
|
Un programa básico para guiarse:
Label1 tiene la hora actual
- |
Fuentes
Amigo TOPX te muestro la pantalla donde se puede ver que el reloj y el sistema estan sincronizados:
Y el codigo fuente del proyecto con el script de la BD en MySQL. http://www.mediafire.com/download/rh...Asistencia.zip Me comentas estimado amigo Un Abrazo |
Hola.
Tal vez esto te sea mas sencillo: http://docwiki.embarcadero.com/Libra...MinutesBetween Ten en cuenta que solo devuelve números positivos. Deberías preguntar cual fecha es mayor e invertir los parámetros si es necesario. Saludos. |
Mmm por que no lo haces todo dentro de la base de datos con un procedimiento almacenado, que ahi evalue los horarios en base a una tabla maestra, en caso de que lo sigas manejando con delphi trata los time o datetime como flotantes y realizas las comparaciones.
Saludos. |
ok
Cita:
|
Y si lo pasas a todo a minutos...
Buenas Buenas
Capaz que no comprendí la dificultad del problema, no sería más fácil llevar todo a minutos, después lo restas y listo 14:00 = 14*60+00 = 840 14:02 = 14*60+02 = 842 840 – 842 = -2 Existen todas las funciones en Delphi, para extraer horas, minutos y segundos. Si lo llevas tos a segundos, tenes mas precisión. Ojala que te sirva. Saludos |
La franja horaria es GMT +2. Ahora son las 22:38:15. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi