Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pomoc oko funcije za racunanje vremena izmedju dva datuma?

[es] :: Pascal / Delphi / Kylix :: Pomoc oko funcije za racunanje vremena izmedju dva datuma?

[ Pregleda: 2654 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

reikonija
Faks<lll>
Visegrad

Član broj: 213271
Poruke: 121
*.teol.net.



+4 Profil

icon Pomoc oko funcije za racunanje vremena izmedju dva datuma?27.05.2013. u 19:42 - pre 132 meseci
Nasao sam funkciju na elitesecurity koja racuna razliku izmedju dva datuma:


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;');







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]
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Pomoc oko funcije za racunanje vremena izmedju dva datuma?28.05.2013. u 00:02 - pre 132 meseci
> 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.

Code:

var
  d1, d2, d3, d4, r1, r2, total: TDate;
begin
  r1 := d2 - d1; // Razlika prva dva datuma
  r2 := d4 - d3; // Razlika druga dva datuma
  total := r1 + r2; // Ukupna razlika

  DMYBetween(total, 0, Days, Months, Years);
end;


 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Pomoc oko funcije za racunanje vremena izmedju dva datuma?

[ Pregleda: 2654 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.