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 27-01-2011
Jucho69 Jucho69 is offline
Miembro
 
Registrado: ene 2007
Ubicación: Ciudad Habana, Cuba
Posts: 118
Poder: 18
Jucho69 Va por buen camino
Comparar fechas

Hola amigos

Tengo una pequeña dificultad y no he logrado resolverla, ¿como se puede comparar dos fechas que estén almacenadas, digamos, en dos TEdit o Tlabel y definit cual es más actual o viceversa?

Saludos y gracias
Responder Con Cita
  #2  
Antiguo 27-01-2011
Avatar de Aleca
Aleca Aleca is offline
Miembro
 
Registrado: may 2003
Ubicación: Venado Tuerto, Argentina
Posts: 277
Poder: 21
Aleca Va por buen camino
Código Delphi [-]
  StrToDate(Edi1.Text) > StrToDate(Edi2.Text)
DateToStr(Fecha) pasa de fecha a texto.
__________________
Aleca
Responder Con Cita
  #3  
Antiguo 27-01-2011
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Pues teniendo los datos(correctamente) en los respectivos edit pues podemos hacer ésto en un Boton:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
if StrToDate(Edit1.Text)>StrToDate(Edit2.Text) then
  ShowMessage('La fecha del Edit1 es mayor')
else if StrToDate(Edit1.Text)then
      ShowMessage('La fecha del Edit2 es mayor')
     else
      ShowMessage('Las dos fechas son iguales');
end;

UN CONSEJO
En delphi existe controles(componentes) específicos para manejo de fechas y hora, especifiacmente estoy hablando del componente TDateTimePicker que se encuentra en la pestaña Win32 de la paleta de componentes; creo que es mucho mejor usar dos DateTimePicker en ves de los dos edits y así nos evitamos el estar usando la funcion StrToDate, sabiendo que el usuario puede escribir mal el formato de la fecha
Saludos...
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #4  
Antiguo 27-01-2011
Jucho69 Jucho69 is offline
Miembro
 
Registrado: ene 2007
Ubicación: Ciudad Habana, Cuba
Posts: 118
Poder: 18
Jucho69 Va por buen camino
Hola Aleka y rgstuamigo

Es un gusto contactar con ustedes ya que me han ayudado varias veces, es cierto, el componente DateTimePicker es ideal para eso y lo he usado pero he tenido que hacer codigos innecesarios como este para separar los datos de las fechas

Código Delphi [-]
procedure TForm5.DateTimePicker1CloseUp(Sender: TObject);
  var t0,t1,t2,r0,r1,r2,f:string;  dia1,dia2,mes1,mes2,ano1,ano2,f1:integer;
   begin
    dxButton4.Enabled:=true;
     label10.Caption:=(DateToStr(DateTimePicker1.date));
      label11.Caption:=(DateToStr(DateTimePicker2.date));
        t0:=label10.Caption;delete(t0,3,10);
        t1:=label10.Caption;delete(t1,1,3);delete(t1,3,10);
        t2:=label10.Caption;delete(t2,1,6);
        r0:=label11.Caption;delete(r0,3,10);
        r1:=label11.Caption;delete(r1,1,3);delete(r1,3,10);
        r2:=Form1.ComboBox5.Text;
        dia1:=strtoint(t0); dia2:=strtoint(r0);
        mes1:=strtoint(t1); mes2:=strtoint(r1);
        ano1:=strtoint(t2);ano2:=strtoint(r2);
Gracias y me pondré a rectificar lo anterior

Saludos

Última edición por rgstuamigo fecha: 27-01-2011 a las 18:38:47. Razón: Estética en el código
Responder Con Cita
  #5  
Antiguo 27-01-2011
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Lightbulb

Cita:
Empezado por Jucho69 Ver Mensaje
... es cierto, el componente DateTimePicker es ideal para eso y lo he usado pero he tenido que hacer codigos innecesarios como este para separar los datos de las fechas

Código Delphi [-]
procedure TForm5.DateTimePicker1CloseUp(Sender: TObject);
  var t0,t1,t2,r0,r1,r2,f:string;  dia1,dia2,mes1,mes2,ano1,ano2,f1:integer;
   begin
    dxButton4.Enabled:=true;
     label10.Caption:=(DateToStr(DateTimePicker1.date));
      label11.Caption:=(DateToStr(DateTimePicker2.date));
        t0:=label10.Caption;delete(t0,3,10);
        t1:=label10.Caption;delete(t1,1,3);delete(t1,3,10);
        t2:=label10.Caption;delete(t2,1,6);
        r0:=label11.Caption;delete(r0,3,10);
        r1:=label11.Caption;delete(r1,1,3);delete(r1,3,10);
        r2:=Form1.ComboBox5.Text;
        dia1:=strtoint(t0); dia2:=strtoint(r0);
        mes1:=strtoint(t1); mes2:=strtoint(r1);
        ano1:=strtoint(t2);ano2:=strtoint(r2);
Para poder separar los datos de las fechas en dia, mes y año, podrías haber utilizado el procedure DecodeDate de la unidad SysUtils y extraer cada uno de ellos en una variable determinada mas o menos de la siguiente forma:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
Var dia,mes,anio:Word;
begin
DecodeDate(DateTimePicker1.Date,anio,mes,dia);//extraigo de la fecha los datos del año, mes y día en variables separada
 ShowMessage('El día es '+IntToStr(dia));//muestro el día
 ShowMessage('El Mes es '+IntToStr(mes));//muestro el mes
 ShowMessage('El año es '+IntToStr(anio));//muestro el año
end;
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #6  
Antiguo 27-01-2011
Jucho69 Jucho69 is offline
Miembro
 
Registrado: ene 2007
Ubicación: Ciudad Habana, Cuba
Posts: 118
Poder: 18
Jucho69 Va por buen camino
Thumbs up

Hola rgstuamigo

!Es justo lo que estaba buscando!, así ya se pueden utilizar los valores como se quieran independientemente del formato de la fecha, realmente uno se va a veces por el camino más largo de la Caperusita habiendo soluciones como la que me diste.

Está de más que te agradezco tu esfuerzo y los anteriores.

Un buen 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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
comparar fechas luxus OOP 3 05-06-2008 14:20:19
slq entre dos fechas comparar fechas taru MySQL 2 30-07-2007 16:10:36
Comparar fechas creus Varios 3 19-03-2007 14:27:14
Comparar dos fechas efelix Conexión con bases de datos 1 14-10-2006 15:30:32
Comparar Fechas robero espinoza SQL 1 04-07-2003 03:04:48


La franja horaria es GMT +2. Ahora son las 10:50:17.


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