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 kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 22
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
  #2  
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
  #3  
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
  #4  
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
  #5  
Antiguo 08-03-2007
Avatar de Durbed
Durbed Durbed is offline
Miembro
 
Registrado: ago 2004
Posts: 166
Poder: 23
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
  #6  
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: 24
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
  #7  
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
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 16:02:37.


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