Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Pomoc oko funcije za racunanje vremena izmedju dva datuma?

  • 1 odgovor
  • 3.561 pregleda

Najnovija ↓

Pomoc oko funcije za racunanje vremena izmedju dva datuma? 27.05.2013. u 20:42 · pre 163 meseca
izmenjeno 1 put, poslednji put reikonija 28.05.2013. u 00:31
  1. reikonija28.05.2013. u 00:31zapis iz teksta poruke
#1
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.
Re: Pomoc oko funcije za racunanje vremena izmedju dva datuma? 28.05.2013. u 01:02 · pre 163 meseca #2
> 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;

Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme