PDA

Ver la Versión Completa : Ayuda con Rango de Fechas y meses


microbiano
06-06-2012, 01:07:15
resulta que hace tiempo tengo un problema con el rango de fechas
y no se como implementarlo.

el link anterior este:

http://www.clubdelphi.com/foros/showthread.php?t=72261.


bien en aquel entonces lo solucione con una tabla de prerecibos pero ahora son muchos registros demaciaddos llevo las 100,000 prerecibos en cada prerecibo tenia una fecha final de pago cuando entraba al sistema este validaba con la fecha del servidor y actualizada los prerecibos para ver cuales se tenian que pagar con interes


ahora lo que quiero volver a retomar es como saber cuantos meses hay de una fecha a otra es decir ejemplo.

mi ultimo pago lo realizo el 25 de febrero de 2012.

si hoy (5 de junio 2012)se presenta el cliente, el sistema debe verificar que entre febrero y junio hay 3 meses(marzo,abril y mayo) esos meses los debe cobrar con interes, alguna sugerencia de como hacerlo sin generar prerecibos.

la fecha del ultimo pago la guarda en una tabla llamada pagos.

de antemano muchas gracias

thecidmx
06-06-2012, 03:53:11
una pregunta, supongo que tienes una base de datos en la cual determinas los pagos, ejemplo bd pagos, en la cual maneja el ultimo pago realizado., concatenalo, y saca los dias, mes y año, y lo comparas con la nueva fecha, estoy haciendo el ejemplo, lo pongo en un rato en el ftp.

thecidmx
06-06-2012, 04:30:49
var
Present,last : TDateTime;
m1,m2,d1,d2,ano1,ano2 : word;
dia,mes,ano : integer;
begin
dia := 0;
mes := 0;
ano := 0;
m1 := 0;
m2 := 0;
d1 := 0;
d2 := 0;
ano1 := 0;
ano2 := 0;
present := now();
decodedate(present,ano1,m1,d1);
decodedate(strtodate(MaskEdit1.text),ano2,m2,d2);
dia := d2-d1;
mes := m2-m1;
ano := ano1-ano2;
if (ano <= 1) and (m1=12) then
begin
m1 :=m1;
end
else
begin
if ano >= 1 then
m1 := ((ano*12)+ m1-1)
else
m1 := m1;
end;
edit3.Text := inttostr(m1);

haci ya calcula los mese ahi te dejo componer los verificadores :P, y hace correr correctos