![]() |
Problema al Sumar Días a cierta Fecha
Buen día tengan compañeros, platico mi Gran Problema, tengo la siguiente función:
La finalidad de esta función es de sumar días a cierta Fecha, la uso para determinar los días de vencimiento de una factura de crédito, TODO funciona de maravilla si hago pruebas, pero en ocasiones me reportan que sale el vencimiento incorrecto es decir la fecha de vencimiento se determina dependiendo de los días de crédito del cliente, yo guardo en el Maestro de la Factura la Fecha de la Factura, Fecha de Vecimiento y Días de Crédito del Cliente, y aprox. de 2 a 4 facturas por semana salen de que teniendo el cliente 30 días de crédito, el vencimiento lo determina por 11,14,16,26,27 ó 28 días, asi sale impreso en la factura y asi se guarda en el maestro de la Factura, no se si tengo algun error en la función que presento arriba, la forma de calcular la fecha de vencimiento es: Agredezco cualquier opinion. |
Hola No se si entiendo lo que quieres decir pero yo para sumar dias o meses a una fecha utilizo las funciones de delphi.
IncMonth (sumar Meses) IncDay (sumar dias) Extraido de la ayuda delphi. --------------------------- function IncDay(const AValue: TDateTime; const ANumberOfDays: Integer = 1): TDateTime; Description IncDay returns the value of the AValue parameter, incremented by ANumberOfDays days. ANumberOfDays can be negative, to return a date N days previous. The time of day specified by the AValue parameter is copied to the result. Un saludo. |
No entiendo porque haces y deshaces lo hecho dentro de esa funcion, del mismo modo el if que pones es absurdo, que se pretende comprobar con eso ?? si el procesador a sumado mal ?? Si esto pudiese darse y para ello pusieses esa comprobacion, las sumas y restas que haces despues en el if:
Present:=Present+(X-(Present-Fecha)); Tambien pondrian fallar, de modo que tendrias que poner otro if para comprobar esta nuevas sumas y restas, y lo mismo con las operaciones del nuevo if, lo que significaria que tendrias que poner IFs infinitos. Es mas la misma condicion del if podria fallar de modo que no sirve para nada. Adicionalmente la operacion, Present:=Present+(X-(Present-Fecha)); Se simplifica en lo siguiente: Present:= X+Fecha; Que es lo mismo que tienes puesto en la primera linea. En definitiva para sumar fechas no necesitas siquiera hacer ninguna funcion, pon simplemente: NuevaFecha= Int(Fecha) + Dias; O si tienes un delphi moderno llama a la siguiente funcion (la funcion hace lo mismo que arriba, simplemente suma los dias y listo): NuevaFecha:= IncDay(Fecha,Dias); Y NADA MAS. Saludos Miguel |
Gracias!!!!
Gracias Compañeros, yo se que el IF que tengo no es necesario y es absurdo de que el procesador no sume correctamente, pero no me da otra alternativa que ponerlo, pero espero no me suceda lo mismo con el IncDay
Gracias por sus respuestas. |
La franja horaria es GMT +2. Ahora son las 15:44:20. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi