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 07-03-2007
Avatar de Durbed
Durbed Durbed is offline
Miembro
 
Registrado: ago 2004
Posts: 166
Poder: 20
Durbed Va por buen camino
Desesperado al comparar dos fechas - horas

Tengo que comparar dos TDateTime, y no me funciona de ninguna manera, he probado a comprar directamente los dos TDateTime, tambien he probado la funcion CompareDateTime y por ultimo los he pasado a una cadena mediante DateTimeToStr y he comparado las cadenas y sigue sin funcionar. Decir que las fechas son iguales.

Un saludo y gracias.
__________________
Intentando hacer algo con Delphi 7 y Firebird 1.5
Responder Con Cita
  #2  
Antiguo 07-03-2007
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
A mi siempre me ha funcionado sin problema comparar dos fechas con =, o <>.

A ver si lo que pasa es que tienes dos TDateTime cuya Fecha sea la misma (o distinta) pero la parte horaria te está influyendo en la comparación !

Al indicar TDateTime no sé si has tenido esto en cuenta.
__________________
Piensa siempre en positivo !
Responder Con Cita
  #3  
Antiguo 07-03-2007
JF Sebastian JF Sebastian is offline
Miembro
 
Registrado: oct 2006
Posts: 108
Poder: 18
JF Sebastian Va por buen camino
El formato de un TDateTime creo que es del tipo double; de hecho si asignas a un double la funcion now() te la convierte en fracciones de segundos desde una determinada fecha origen. Como son fracciones de segundos puedes extraer de ella informacion sobre las horas multiplicando y tomando la parte entera. No se si te sirve de ayuda...
Responder Con Cita
  #4  
Antiguo 07-03-2007
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Los TDateTime son valores reales que en la parte entera guardan la fecha y en la decimal la hora. Se opera con ellos como con cualquier otro número, aunque también hay funciones específicas.
Cita:
Unit
System

Delphi syntax:
type TDateTime = type Double;

Description
[...]
The integral part of a Delphi TDateTime value is the number of days that have passed since 12/30/1899. The fractional part of the TDateTime value is fraction of a 24 hour day that has elapsed.

Following are some examples of TDateTime values and their corresponding dates and times:

0..........12/30/1899 12:00 am
2.75......1/1/1900 6:00 pm
-1.25.....12/29/1899 6:00 am
35065....1/1/1996 12:00 am
Responder Con Cita
  #5  
Antiguo 07-03-2007
Avatar de Gabar'el Arley
Gabar'el Arley Gabar'el Arley is offline
Registrado
 
Registrado: nov 2005
Ubicación: Curitiba - Brasil
Posts: 5
Poder: 0
Gabar'el Arley Va por buen camino
Cool Mira!

No se muy bien lo que quieres mas tengo un codigo que verifica una data o horario dependiando de como lo haces!


procedure TForm1.Button1Click(Sender: TObject);
var
DT:TStringList;
begin
DT:=TStringList.Create;
DT.LoadFromFile('C:\root.txt');

if
Date >=StrToDate(Copy(DT.Text,1,10))

then
Application.Terminate;


el archivo de texto que contiene la data 'root.txt'
exemplo:

12/02/2007


espero que ayude en algo es una buena forma de comparar!
Responder Con Cita
  #6  
Antiguo 07-03-2007
Avatar de Monchi
Monchi Monchi is offline
Miembro
 
Registrado: jun 2006
Ubicación: Cordoba, Argentina
Posts: 18
Poder: 0
Monchi Va por buen camino
Podes usar esto, asignas hora 0:00 a las fechas que tienen los TDateTimePicker antes de comparar
Código Delphi [-]
   
   tfecha:tdatetime;
 
   tfecha:=dtpdesde.date;
   replacetime(tfecha,encodetime(0,0,0,0));
   dtpdesde.date:=tfecha;
Espero te sirva
Saludos
Responder Con Cita
  #7  
Antiguo 07-03-2007
Avatar de PabloTech
PabloTech PabloTech is offline
Miembro
 
Registrado: ene 2007
Ubicación: Tucumán, Argentina
Posts: 82
Poder: 18
PabloTech Va por buen camino
Thumbs up ¿Son solo fechas?

La pregunta del millón es: ¿Son solo fechas?; ó es que, hay algo mas que evita que las fechas sean comparables. Pues sí, algunos componentes que editan la fecha devuelven la hora también; o puede ser que, lo estes comparando con un campo de tipo TDateTime y tenga la hora incluida. A mi me pasaron las dos cosas.
Para salir de la duda, trunca ambas fechas y luego compáralas. Así:
Código Delphi [-]
   if Trunc(Fecha.DateTime) < Trunc(Tabla.FieldByName('Partida').AsDateTime) then
      ShowMessage('Ingresaste una fecha menor a la de la tabla');

Espero te sirva. Chau..!
Responder Con Cita
  #8  
Antiguo 15-04-2007
juliobuitrago juliobuitrago is offline
Miembro
 
Registrado: jun 2006
Posts: 37
Poder: 0
juliobuitrago Va por buen camino
Units

Tengo una serie de Units.....creo que las de sourceforge, que te hacen todo eso, me dices si las quieres, tira por fernandobuitrago@gmail.com....creo que las puedo distribuir gratis...creo, pues ellas están gratis.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Comparar Horas en SQL Server trex2000 MS SQL Server 3 23-01-2007 21:13:01
Comparar horas en variables vivamotos Firebird e Interbase 3 19-09-2006 22:07:22
Ayuda para comparar Horas JerS Varios 4 21-09-2005 17:06:31
comparar horas noobdelphi Firebird e Interbase 2 27-01-2005 15:55:01
Comparar Horas Novás Varios 3 06-01-2004 11:49:32


La franja horaria es GMT +2. Ahora son las 02:14:31.


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