Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-06-2011
fabriciof fabriciof is offline
Miembro
 
Registrado: abr 2004
Posts: 26
Poder: 0
fabriciof Va por buen camino
fecha dentro de un periodo

Hola estimados amigos,

Estoy escribiendo un programa para procesar datos de una base de datos access, para eso estoy usando delphi 2007 un ADOconection y un ADOTable.

la base de datos contiene registros cada 10 min y el programa debe acumularlos para hallar el total horario, pero los registros no estan siempre cada 10 min, algunas veces no existen registros o salta algunos.

entonces genero las fechas y horas desde el primer dia al ultimo dia. Entonces leo las fechas y datos de la base de datos y los localizo en en el preiodo correspondiente. Funciona correctamente pero de pronto leo un registro e.i

7/06/1998 9:10:00 am, el periodo correspondiente es 7/06/1998 9:00:00 am-7/06/1998 10:00:00 am pero el programa no introduce el valor en el intervalo, dice que es mayor?

puede ser este un problema de formato?

muchas gracias
Responder Con Cita
  #2  
Antiguo 24-06-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 9.875
Poder: 27
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola fabricio.

El problema se presenta por que es muy improbable que hagas la toma de tiempo exáctamente en '7/06/1998 9:10:00 am'.
Normalmente obtenes un valor como '7/06/1998 9:10:00,15 am', mayor y por lo tanto no comprendido en los límites del período.

Si no te importa tanta exactitud podrías hacer:
Código Delphi [-]
const
  AJUSTE = 1000000;
var
  PeriodoIni, PeriodoFin, Toma: TDateTime;
begin
  // valores arbitrarios para el ejemplo
  PeriodoIni:= StrToDateTime('7/06/1998 9:10:00 am');  
  PeriodoFin:= StrToDateTime('7/06/1998 9:10:00 am');
  PeriodoIni:= Trunc(PeriodoIni*AJUSTE)/AJUSTE;    // hh:mm:ss
  PeriodoFin:= Trunc(PeriodoFin*AJUSTE)/AJUSTE;    // hh:mm:ss
  // valor a evaluar
  Toma:= StrToDateTime('7/06/1998 9:10:00,47 am'); // mayor en ,47 
  Toma:= Trunc(Toma*AJUSTE)/AJUSTE;                // hh:mm:ss
  if (Toma >= PeriodoIni) and (Toma <= PeriodoFin) then
   ShowMessage('Comprendida en el período')
  else
   ShowMessage('No comprendida en el período');
end;
De este modo estarías evaluando sólamente horas, minutos y segundos.


Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 24-06-2011 a las 14:49:29. Razón: añadir comentarios al codigo
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Comprar Delphi original o usarlo periodo de pruebas ? flashtkd Debates 12 06-08-2011 22:16:57
¿saber si una fecha o mas estan dentro de un rango de fechas? JXJ Firebird e Interbase 17 26-08-2010 00:55:43
cuantos domingos tiene un periodo poliburro Varios 16 22-06-2007 17:59:02
Como direccionar a una pagina en un periodo de tiempo Shidalis PHP 15 28-04-2006 20:23:33
Paradox - Fecha actual dentro de un select fjolivares Tablas planas 2 20-05-2005 17:12:56


La franja horaria es GMT +2. Ahora son las 07:20:09.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi