Pozz
Mislite kako sam došao do trocifrene sate (100:00:00).
Evo ovako:
Code:
// Ukupno radnih sati
function Sati_Sec( Sati:string ):LongInt;
Var Sat,Min,Sec:LongInt;
begin
Sati[Pos(':',Sati)]:= '[';
Sati[Pos(':',Sati)]:= ']';
Sat := StrToInt(Copy(Sati,1,Pos('[',Sati)-1));
Min := StrToInt(Copy(Sati,Pos('[',Sati)+1,(Pos(']',Sati)-Pos('[',Sati)-1)));
if Pos(':',Sati) > 0 then
Sec := StrToInt(Copy(Sati,Pos(']',Sati)+1,(Pos(':',Sati)-Pos(']',Sati)-1)))
else
Sec := StrToInt(Copy(Sati,Pos(']',Sati)+1,2));
Result := Sec + (Sat*3600) + (Min*60);
end;
function Sec_Sati( Sec:LongInt ):string;
Var Sati,Min:LongInt;
Tmp : Double;
begin
Tmp := Sec / 3600;
Sati := Round(Int(Tmp));
Sec := Round(Sec - (Sati*3600));
Tmp := Sec / 60;
Min := Round(Int(Tmp));
Sec := Round(Sec - (Min*60));
Result := FormatFloat( '00', Sati )+ ':' + FormatFloat( '00', Min ) + ':' + FormatFloat( '00', Sec );
end;
procedure TForm1.Button3Click(Sender: TObject);
var
Total:Integer;
begin
Total:=0;
TablePrijavaOdjava.DisableControls;
TablePrijavaOdjava.First;
while not TablePrijavaOdjava.EOF do
begin
Total := Total + Sati_Sec( TimeToStr(TablePrijavaOdjava.FieldByName('Ukupno_sati').AsDateTime));
TablePrijavaOdjava.Next;
end;
TablePrijavaOdjava.EnableControls;
UkupnoEdit1.Text :=(sec_Sati(Total));
end;
// Kraj ukupno sati
Što znači sabiranjem kolone (ukupno_sati) dobijene kalkulacijom prijave i odjave dobijem trocifrene sate
koje posle ovim kodom
Code:
//Ukupno radno vreme puta cena
Procedure TForm1.Button1Click(Sender: TObject);
var
Time:TTime;
Ukupno,Cena : Currency;
begin
Time:=StrToTime('100:00:00')*24;
Cena:=StrToFloat('1000');
Ukupno:= Time * Cena;
Edit1.Text := FormatFloat('###,##0.00',Ukupno);
end;
//Kraj ukupno isplata
trebam dobiti (Ukupno radno vreme) pomnoženo sa cenom po satu i da dobijem iznos za isplatu.
E sad gde mi je greška nemogu pronaći.
Boban