Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-09-2005
JerS JerS is offline
Miembro
 
Registrado: may 2005
Ubicación: Venezuela
Posts: 254
Poder: 19
JerS Va por buen camino
Ayuda para comparar Horas

Amigos estoy haciendo una aplicacion de ingreso de personal por medio de un horario! ya los datos del horario estan en una tabla, la cual esta previamente relacionada con el personal!, Ahora mi pregunta es como hago para comparar dos Horas para ver si el empleado llego temprano ejm:

If now>adodatase1.recordset.fields.item['horallegada'].value then
Retardado;

pero no me sirve porque si por ejemplo son las 8:00 pm y la hora de llegada es a las 10:00 am me toma el 10:00 am como mayor :S porfavor ayudenme o aclarenme un poco la situacion
__________________
La vida es un simple pero complejo If

J=rS
Responder Con Cita
  #2  
Antiguo 20-09-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Para las horas tienes que utilizar el formato de 24 horas, llamado "militar", o "ferroviario", además te recomiendo que utilices tambien la fecha, pues alguien que comience a trabajar a las 22h y finalice al dia siguiente por ejemplo a las 06h, te daría problemas de comparación.

En conclusión si utilizas un campo fecha/hora, puesto que hablas de Access, puedes almacenar ambos a la vez y luego hacer la comparación que proceda.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 20-09-2005
JerS JerS is offline
Miembro
 
Registrado: may 2005
Ubicación: Venezuela
Posts: 254
Poder: 19
JerS Va por buen camino
Cita:
Empezado por marcoszorrilla
Para las horas tienes que utilizar el formato de 24 horas, llamado "militar", o "ferroviario", además te recomiendo que utilices tambien la fecha, pues alguien que comience a trabajar a las 22h y finalice al dia siguiente por ejemplo a las 06h, te daría problemas de comparación.

En conclusión si utilizas un campo fecha/hora, puesto que hablas de Access, puedes almacenar ambos a la vez y luego hacer la comparación que proceda.

Un Saludo.
Gracias amigo, pero oestoy utilizando Mysql!, y como hago para utilizar el formato de hora militar??
__________________
La vida es un simple pero complejo If

J=rS
Responder Con Cita
  #4  
Antiguo 20-09-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Cita:
2 Tipos fecha:

A la hora de almacenar fechas, hay que tener en cuenta que Mysql no comprueba de una manera estricta si una fecha es válida o no. Simplemente comprueba que el mes esta comprendido entre 0 y 12 y que el día esta comprendido entre 0 y 31.
Date: tipo fecha, almacena una fecha. El rango de valores va desde el 1 de enero del 1001 al 31 de diciembre de 9999. El formato de almacenamiento es de año-mes-dia

DateTime: Combinación de fecha y hora. El rango de valores va desde el 1 de enero del 1001 a las 0 horas, 0 minutos y 0 segundos al 31 de diciembre del 9999 a las 23 horas, 59 minutos y 59 segundos. El formato de almacenamiento es de año-mes-dia horas:minutos:segundos

TimeStamp: Combinación de fecha y hora. El rango va desde el 1 de enero de 1970 al año 2037. El formato de almacenamiento depende del tamaño del campo:

Tamaño
Formato
14
AñoMesDiaHoraMinutoSegundo aaaammddhhmmss
12
AñoMesDiaHoraMinutoSegundo aammddhhmmss
8
ñoMesDia aaaammdd
6
AñoMesDia aammdd
4
AñoMes aamm
2
Año aa


Time: almacena una hora. El rango de horas va desde -838 horas, 59 minutos y 59 segundos a 838, 59 minutos y 59 segundos. El formato de almacenamiento es de 'HH:MM:SS'

Year: almacena un año. El rango de valores permitidos va desde el año 1901 al año 2155. El campo puede tener tamaño dos o tamaño 4 dependiendo de si queremos almacenar el año con dos o cuatro dígitos.

Tipo de Campo
Tamaño de Almacenamiento
DATE
3 bytes
DATETIME
8 bytes
TIMESTAMP
4 bytes
TIME
3 bytes
YEAR
1 byte
Enlace:

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 21-09-2005
adlfv adlfv is offline
Miembro
 
Registrado: may 2005
Posts: 39
Poder: 0
adlfv Va por buen camino
Hola.

Creo recordar que para ese tipo de cosas viene bien DateUtils...

Yo me hice unas funciones hace tiempo a mano, pero creo que en DateUtils hay funciones para hacer eso, y más... De todas formas si no consigues, aquí te adjunto el código que hice...

Código:
 // Devuelve true sii F1 representa la misma fecha que F2
 function Iguales(F1, F2: TDate): Boolean;
 begin
   Result := (Abs(StrToInt(FormatDateTime('YYYY', F1)) - StrToInt(FormatDateTime('YYYY', F2))) = 0) and
 		    (Abs(StrToInt(FormatDateTime('M', F1)) - StrToInt(FormatDateTime('M', F2))) = 0) and
 		    (Abs(StrToInt(FormatDateTime('D', F1)) - StrToInt(FormatDateTime('D', F2))) = 0)
 end;
 
 // Devuelve true sii F1 representa una fecha mayor que la fecha F2
 function Mayor(F1, F2: TDate): Boolean;
 begin
   Result := (StrToInt(FormatDateTime('YYYY', F1)) - StrToInt(FormatDateTime('YYYY', F2)) > 0) or
 		    ((StrToInt(FormatDateTime('YYYY', F1)) - StrToInt(FormatDateTime('YYYY', F2)) = 0) and
 			 (DateToJuliana(F1) - DateToJuliana(F2) > 0));
 end;
 
 // Devuelve true sii F1 representa una fecha menor que la misma fecha F2
 function Menor(F1, F2: TDate): Boolean;
 begin
   Result := Mayor(F2, F1);
 end;
Espero que te sirva.

Un saludo...
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 02:00:19.


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
Copyright 1996-2007 Club Delphi