Code:
procedure DMYBetween(ANow, AThen: TDate; var Days, Months, Years: Integer);
begin
Years := YearsBetween(ANow, AThen);
AThen := IncYear(AThen, Years);
Months := MonthsBetween(ANow, AThen);
AThen := IncMonth(AThen, Months);
Days := DaysBetween(ANow, AThen);
end;
procedure TForm1.sButton2Click(Sender: TObject);
var d,m,g,Days,Months,Years: integer;
ANow, AThen : TDate;
begin
memo1.Clear;
d:= 0;//radni staz donet (broj dana)
m:= 0;//radni staz donet (broj meseci)
g:= 0;//radni staz donet (broj godina)
ANow:= StrToDate(sedit3.Text);//postavka datuma
AThen:= StrToDate(sedit1.Text);//postavka datuma
DMYBetween(ANow, AThen, Days, Months, Years);
AThen := IncYear(IncMonth(IncDay(ANow, -Days-d), -Months-m), -Years-g);
DMYBetween(ANow, AThen, Days, Months, Years);
memo1.Lines.Append('Od poèetka do danas ima: ' + IntToStr(Days) + ' dana; ' +
IntToStr(Months) + ' meseci; ' + IntToStr(Years) + ' godina;');
procedure DMYBetween(ANow, AThen: TDate; var Days, Months, Years: Integer);
begin
Years := YearsBetween(ANow, AThen);
AThen := IncYear(AThen, Years);
Months := MonthsBetween(ANow, AThen);
AThen := IncMonth(AThen, Months);
Days := DaysBetween(ANow, AThen);
end;
procedure TForm1.sButton2Click(Sender: TObject);
var d,m,g,Days,Months,Years: integer;
ANow, AThen : TDate;
begin
memo1.Clear;
d:= 0;//radni staz donet (broj dana)
m:= 0;//radni staz donet (broj meseci)
g:= 0;//radni staz donet (broj godina)
ANow:= StrToDate(sedit3.Text);//postavka datuma
AThen:= StrToDate(sedit1.Text);//postavka datuma
DMYBetween(ANow, AThen, Days, Months, Years);
AThen := IncYear(IncMonth(IncDay(ANow, -Days-d), -Months-m), -Years-g);
DMYBetween(ANow, AThen, Days, Months, Years);
memo1.Lines.Append('Od poèetka do danas ima: ' + IntToStr(Days) + ' dana; ' +
IntToStr(Months) + ' meseci; ' + IntToStr(Years) + ' godina;');
Funkcija racuna npr vreme od 1.1.2010 do 1.1.2012 , ali pokusavam je prepraviti da radi sledeci zadatak:
Pocetak vremena : 1.1.2010
Kraj vremena : 1.1.2012
Dodatni period : od 1.1.2000 do 1.1.2013
Kada funkcija izracuna vreme izmedju "Pocetak vremena" i "Kraj vremena" rezultat ce biti "31 dana; 11 meseci; 1 godina;" ,a za dodatni period ce biti "0 dana; 0 meseci; 3 godina;"
Kako da na iznos za pocetak i kraj vremena dodam dodatni period a da ne dobijem npr "64 dana , 44 mjeseca itd..." u rezultatu.
Najlakse bi bilo na kraj vremena dodati dodatni period i izracunati koji je to datum pa racunati period izmedju pocetka vremena i tog novog datuma.
Ako mi neko moze pomoci bio bih zahvalan.
UPDATE : Nasao sam resenje.
[Ovu poruku je menjao reikonija dana 28.05.2013. u 00:31 GMT+1]