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 18-12-2007
Avatar de johurgi
johurgi johurgi is offline
Miembro
 
Registrado: jul 2006
Posts: 95
Poder: 18
johurgi Va por buen camino
Fecha a partir de un string

Hola a todos,

Mi duda es la siguiente:

Tengo un string de la siguiente forma "1812078" que significa el dia de hoy.
De que forma podria yo inicializar una variable de tipo fecha para poderla comparar por ejemplo con otra fecha "011207".
Código:
var
  inicial:string;
  final:string;
begin
  inicial:='011207';
  final:='181207';
//convertir strings a fechas
//compararlos
end;
gracias de antemano
Responder Con Cita
  #2  
Antiguo 18-12-2007
Avatar de white_zombie
[white_zombie] white_zombie is offline
Miembro Premium
 
Registrado: nov 2005
Ubicación: Zaragoza - España
Posts: 187
Poder: 19
white_zombie Va por buen camino
Hola con las funciones leftstr, rightstr y midstr puedes sacar de ese string dia, mes y año. Con esto ya tendría un formato de fecha para utilizarlo para compararlo o para mostrarlo.

La ayuda de delphi explica muy bien como usar esas funciones.

Un saludo.
Responder Con Cita
  #3  
Antiguo 18-12-2007
rafita rafita is offline
Miembro
 
Registrado: ago 2003
Ubicación: Cuenca- España.
Posts: 309
Poder: 21
rafita Va por buen camino
veamos
Código:
var Inicio, Fin : String;
     FInicio, FFin : TDateTime;

begin
   Inicio:='010107';
   Fin:='181207';

   // pasar a TDateTime
   FInicio:=Encode( StrToInt('20'+Copy(Inicio,5,2)), StrToIntCopy(Inicio, 3, 2)), StrToInt(Copy(Inicio, 1, 2)) ); 
   FFin:=Encode( StrToInt('20'+Copy(Fin,5,2)), StrToIntCopy(Fin, 3, 2)), StrToInt(Copy(Fin, 1, 2)) ); 

   // Comparar 
   if FInicio > FFin then .....

Resumiendo, utiliza la función "Encode" pasándole el año, mes y día, y te devuelve una fecha.
Le sumo '20' porque considero que las fechas son de este siglo, pero para evitar problemas te recomiendo que guardes el año con 4 dígitos.

Para comparar las fechas lo puedes hacer directamente ( if FInicio < FFin) pero teniendo en cuenta que no tengan nada en la parte de la hora. Montándolas como yo lo he hecho no tienen nada, pero si las capturas desde el sistema ( FInicio:=NOW) si puede tener contenido y resultar que dos variables con el mismo día son diferentes porque tienen horas distintas.

También puedes utilizar funciones como DaysBetween...


Nota: el código anterior lo he hecho aquí por tanto puede contener errores. Lo importante es la idea
Saludos,
__________________
Rafita.
Responder Con Cita
  #4  
Antiguo 18-12-2007
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Poder: 18
Gabo Va por buen camino
Lo de inicializar la variable, ya te lo he respondido rafa... tienes los tipos de datos TDate y TDateTime.

Para convertir el string en fecha, tienes Encode (ya comentado) y StrToDate. En ese último caso, el string tiene que cumplir unas determinadas características que encontrarás en la ayuda.
__________________
Saludos,
Gabo

A menos que se indique lo contrario, el código estará hecho en C++Builder.
Responder Con Cita
  #5  
Antiguo 18-12-2007
Avatar de johurgi
johurgi johurgi is offline
Miembro
 
Registrado: jul 2006
Posts: 95
Poder: 18
johurgi Va por buen camino
Gracias por vuestras respuestas, ya lo resolvi de la siguiente forma:
Código:
//ANTERIORMENTE YA FORMATEO LA FECHA PARA MONTAR EL STRING DE //LA FORMA QUE VEIS EN EL CODIGO.
procedure fechas(ini,fin:string);
var
  lafecha:Tdatetime;
  diaini:Tdatetime;
  diafin:Tdatetime;
begin
diaini:=strtodate(ini);{01/12/07}
diafin:=strtodate(fin);{18/12/07}
if CompareDate(diaini,diafin)=1 then lafecha:=diaini;
else lafecha:=diafin;
result:=lafecha;
end;
Espero que le sirva a alguien.

un 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
Ayuda, Como calcular fecha de vencimiento mensual a partir de una fecha x en delphi Renis Impresión 4 23-08-2007 23:45:14
Ejecutar función de JavaScript a partir del nombre de su identificador (string) dec HTML, Javascript y otros 12 24-08-2006 01:30:45
Partir un string FunBit Varios 5 25-07-2005 17:58:32
Como crear formas a partir de un string!! Alfonso Castill OOP 7 05-06-2004 05:03:22
Como saber el tipo de componentes a partir de un string? Roger OOP 2 02-04-2004 13:21:48


La franja horaria es GMT +2. Ahora son las 16:24:25.


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