PDA

Ver la Versión Completa : Restar fechas


majosf
15-11-2005, 18:59:23
Hola necesito restar fechas.
Tengo por ejemplo 25/12/2005 - 22/11/2005 y me tiene que dar 33 dias.
¿Cómo puedo hacer?

Muchas gracias.

vtdeleon
15-11-2005, 19:31:12
Saludos

Usa la funcion DaysBetweens*

vtdeleon
15-11-2005, 19:35:25
Cabe decir que debes agregar la unidad DateUtils (solo en versiones > Delphi 7)

botones67
15-11-2005, 19:40:38
que tal majost: :p

ojea estos link:

http://www.terra.es/personal/alksoft/delphi/trucos/trucos.htm

http://www.clubdelphi.com/foros/archivo/viewtopic.php?t=17368&highlight=restar+fechas
El componente que aluden TDateTimePicker es de las rusas raizer componentes.

espero te sirva.... :)

majosf
15-11-2005, 20:00:06
Mi version del delpji es la 5.0,alguna otra opcion?

Gracias

botones67
15-11-2005, 20:03:54
Tambien tienes las raizer para D5.

Saludos.
;)

dec
15-11-2005, 20:35:45
Hola,

No estoy completamente seguro. Creo que si buscas por los Foros darás con información, porque, recuerdo que una vez (al menos) se planteó el problema de no poder usar las funciones de la unidad "DateUtils", precisamente, las que tratan de restar fechas... me parece, es lo que quería decir, que puedes utilizar el propio operador "-" entre las fechas (variables de tipo "TDate", o "TDateTime", repito, no estoy nada seguro de esto y no tengo Delphi a mano) para restarlas... prueba a ver y nos cuentas...

Creo recordar a Federico (delphi.com.ar) quien refirió el modo de restar fechas sin necesidad de utilizar la unidad "DateUtils"... lo digo por si puede servirte de algo si tratas de localizar información en los Foros.

luisgutierrezb
15-11-2005, 20:43:23
Var
x,y:TDateTime;
Resultado:Integer;
Begin
x := EncodeDate(2005, 12, 25); //es año, mes, dia en la codificacion
y := EncodeDate(2005, 11, 22);
Resultado := Trunc(x) - Trunc(y); //resultado debe tener 33
...
End;

MichelH
16-11-2005, 06:57:34
mAJOSF q tAL cOMO tE vA.
nO tE lA haGAS dIFICIL, reCUERDA q lAS vaRIABLES tIPO fECHA (tDate y tDateTime) eN rEALIDAD sON nUMEROS rEALES rePRESENTATIVOS dE fECHAS, y pUEDES mANIPULARLOS cOMO tAL.

sIMPLEMENTE reSTALOS y eL rESULTADO sIEMPRE eS eN dIAS

16/11/2005 - 10/11/2005 = 6 dIAS
25/12/2005 - 22/11/2005 = 33 dIAS
2005, 12, 25); //es año, mes, dia en la codificacion
y := EncodeDate(2005, 11, 22)

y aSI cON cUALQUIER reSTA dE fECHAS. eSPERO tE sIRVA.
sI tIENES dUDAS cONTACTAME

Casimiro Notevi
16-11-2005, 08:43:20
¿Qué le pasa a tu teclado? :confused:

vtdeleon
16-11-2005, 12:18:20
Prefierro k me exkrivam mar ha k me exkrivam haci :D

Saludos

MichelH
16-11-2005, 16:27:18
Mil perdones brothers lo q pasa es q no recordaba q aqui no es muy bueno ,talvez no muy agradable, escribir con mayusculas (normas del foro), esq ya stoy muy acostumbrado por q asi escribo en el messenger.

Otravez perdon a todos. Gracias por la observacio. :D

Pd.: nO lO vUELVO hACER...:D:p