![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
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. |
|
#2
|
||||
|
||||
|
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. |
|
#3
|
||||
|
||||
|
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;
un saludo. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|