Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
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
  #2  
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
  #3  
Antiguo 07-03-2007
Avatar de PabloTech
PabloTech PabloTech is offline
Miembro
 
Registrado: ene 2007
Ubicación: Tucumán, Argentina
Posts: 82
Poder: 20
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
  #4  
Antiguo 08-03-2007
Avatar de Durbed
Durbed Durbed is offline
Miembro
 
Registrado: ago 2004
Posts: 166
Poder: 22
Durbed Va por buen camino
Lo que tengo que comparar son dos TDateTime con fecha y hora, y como he dicho he probado a compararlo tal cual, compararlas con la funcion "CompareDateTime" y por ultimo he probado a pasarlo a una cadena y comparar las cadenas, que incomprensiblemente y siendo iguales no se comparan bien.

If TDateTime1 = TDateTime2 Then //No funciona

If CompareDateTime(TDateTime1, TDateTime2) = 0 Then //No funciona

c1 := DateTimeToStr(TDateTime1);
c2 := DateTimeToStr(TDateTime2);
If c1 = c2 Then //Tampoco funciona

A ver si alguien tiene idea de porque me pasa esto.
__________________
Intentando hacer algo con Delphi 7 y Firebird 1.5
Responder Con Cita
  #5  
Antiguo 08-03-2007
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 23
gluglu Va por buen camino
Me acabo de dar cuenta de un detalle :

Espero que estés comparando los variables correctas de TDateTime de tu aplicación.

Estás mostrando comparaciones entre TDateTime1 y TDateTime2. Supongo que deberías tener declarado en tu programa dos varibales del tipo TDateTime. Algo así como :
Código Delphi [-]
var
  Fecha1, Fecha2 : TDateTime;
  ...

Y la comparación estás haciéndola con Fecha1 y Fecha2 :
Código Delphi [-]
if Fecha1 = Fecha2 then ...

Me desconcierta un poco tu código donde haces la comparación entre TDateTime1 y TDateTime2. Si es una simple cuestión de nomenclatura de tus variables, bien. Pero si no es así, revísalo.

Por otro lado, deberías de asignar los valores de tus variables de fecha y hora a comporar a unos strings de esta manera :
Código Delphi [-]
var
  Aux_String1, Aux_String2 : String
  ...
 
// en algún procedimiento de tu programa
Aux_String1 := FormatDateTime('dd/mm/yyyy hh:nn:ss', Fecha1);
Aux_String2 := FormatDateTime('dd/mm/yyyy hh:nn:ss', Fecha2);
y que expongas aquí los valores que te devuelven Aux_String1 y Aux_String2 para ver tus valores concretos.
__________________
Piensa siempre en positivo !
Responder Con Cita
  #6  
Antiguo 08-03-2007
Avatar de PabloTech
PabloTech PabloTech is offline
Miembro
 
Registrado: ene 2007
Ubicación: Tucumán, Argentina
Posts: 82
Poder: 20
PabloTech Va por buen camino
Smile Otra alternativa

Utilizando las herramientas provistas por gluglu podemos comparar las fechas y horas como si fueran cadenas. De esta forma yo propongo lo siguiente (que a mi parecer es infalible).
Código Delphi [-]
var  Fecha1, Fecha2: TDateTime;
  Tiempo1, Tiempo2: String;
begin
// Si en Fecha1 guardo la fecha 23/08/1974 y la hora 15:15:00 y
// en Fecha2 guardo la misma fecha pero con un minuto antes.
  Fecha1 := StrToDateTime('23/08/1974 15:15:00');
  Fecha2 := StrToDateTime('23/08/1974 15:14:00');
//  ...
 
// en algún procedimiento de tu programa
  Tiempo1 := FormatDateTime('yyyy/mm/dd hh:nn:ss', Fecha1);
  Tiempo2 := FormatDateTime('yyyy/mm/dd hh:nn:ss', Fecha2);
// Entonces obtendría lo siguiente:
//   Tiempo1 sería igual a: '1974/08/23 15:15:00' y
//   Tiempo2 sería igual a: '1974/08/23 15:14:00' entonces
// ambas cadenas son perfectamente comparables
  ShowMessage('Tiempo1 = ' + Tiempo1 + ' y Tiempo2 = ' + Tiempo2);
  if Tiempo1 = Tiempo2 then
    ShowMessage('Son los mismos tiempos.')
  else
    if Tiempo1 > Tiempo2 then
      ShowMessage('El primer tiempo es mayor.')
    else
      ShowMessage('El segundo tiempo es mayor.');
// Lo correcto es que observes dos ventanas.
// La primera con los datos almacenados en Tiempo1 y Tiempo2; y
// la segunda, con el mensaje 'El primer tiempo es mayor'.
Suerte y espero que te sirva.
Responder Con Cita
  #7  
Antiguo 08-03-2007
fidel fidel is offline
Miembro
 
Registrado: mar 2005
Posts: 381
Poder: 22
fidel Va por buen camino
Deberías poner tu código completo.

¿Qué significa "No funciona" para tí?

Porque si no funciona te debe dar algún error, o si no te da error es que si que funciona.

Por lo tanto la conclusión que yo saco, es que sí que funciona pero que no te da el resultado que tu crees que debe dar.

Si es esto así, creo que el error sería que tu piensas que las variables son iguales y en realidad no lo son, o que piensas que son distintas y en realidad son iguales.

Recuerdo vagamente que algún problema de este tipo tuve restando dos fechas y no salía lo que yo pensaba que tenia que salir debido a las diferencias entre Now y Date.

Un saludo.
Responder Con Cita
  #8  
Antiguo 19-07-2012
Avatar de DarkBlue
DarkBlue DarkBlue is offline
Miembro
 
Registrado: jun 2010
Posts: 105
Poder: 17
DarkBlue Va por buen camino
muchas gracias amigo pablotech me ha resultado tu metodo infalible al principio no funcionaba por que mi constante de fecha era tdatetime y mis otras fechas eran date! gracias
__________________
Todo es Relativo
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
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 12:52:57.


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