Delphi - sumar dias a una fecha

 
Vista:

sumar dias a una fecha

Publicado por andrea (16 intervenciones) el 08/12/2005 18:58:23
hola amigos quiero hacerles una consultita, quiero sumarle dias a un datetimepicker para calcular cuantos dias puede abarcar un periodo, tambien quiero saber si puede hacerce co los meses, yo hice esto pero no funciona:

datetimepicker1.date + strtodate(edit1.text);
///el edit1 contiene 15/12/2005
/////el datetime picker contiene 01/12/2005

yo se que son 15 dias, pero quiero que el sistema me calcule cuantos dias, sumando unicamente los dias o meses,si alguien puede ayudarme y desde ya les estoy agradecida. Andrea
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:sumar dias a una fecha

Publicado por Dr Juzam (822 intervenciones) el 08/12/2005 21:43:17
Las fechas se representan mediante un número Double, representando la parte entera días desde el 30/12/1899 y la parte decimal la fracción del dia en curso. Ahora bien, si sumas dos fechas así sumarás los días que han pasado desde dicha fecha en uno y otro sumandos, con lo que te pasarás en años.
Existe una función llamada DaysBetween (en DateUtils) que devuelve el número de días entre dos fechas dadas. Calcula el numero de días (que te dará 15 según dices) y se lo sumas a la primera fecha. Así, al sumar 15 enteros le sumamos 15 días.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:sumar dias a una fecha

Publicado por Virum (484 intervenciones) el 09/12/2005 17:05:15
Hola:

Estás fallando en el planteamiento, para calcular un período entre dos fechas (o un intervalo entre dos números) hay que calcular la diferencia del mayor menos el menor, o lo que es lo mismo, debes restar la cantidad mayor menos la menor.

En este caso de fechas lo mismo, debes restar la fecha mayor menos la menor y te dará correcto, nunca sumarlas como tu estás haciendo.

Además debes tener en cuenta que DateTimePicker almacena también la hora, por lo que para restar fechas debes quitarle la hora (con Trunc).

Prueba con esto que tu tienes pero así

strtodate(edit1.text) - Trunc(datetimepicker1.date)

si pones los valores que tu dices
///el edit1 contiene 15/12/2005
/////el datetime picker contiene 01/12/2005

te dará 14, porque ojo, dices que sabes que son 15 días, pero no es cierto, entre el 1 y el 15 son 14 días de diferencia.

Mira si tienes en tu versión de Delphi la unit DateUtils que tiene un montón de funciones de fechas muy interesantes.

Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar