24-12-2020, Saat: 11:20
Merhaba,
Bir alanım var CalismaSaati adında buraya girilen değerlerini toplamını almak istiyorum,
Örneğin:
15:50:10
20:15:10
Toplam : 36:05:20
Şeklinde nasıl yapabilirim aşağıdaki kod ile saati toplayabiliyorum fakat dakikayı 65 yazıyor.
Teşekkürler.
Bir alanım var CalismaSaati adında buraya girilen değerlerini toplamını almak istiyorum,
Örneğin:
15:50:10
20:15:10
Toplam : 36:05:20
Şeklinde nasıl yapabilirim aşağıdaki kod ile saati toplayabiliyorum fakat dakikayı 65 yazıyor.
Teşekkürler.
var
Bookmark: TBookmark;
ToplamCalisma: TTime;
Saat, Dakika, Saniye, MiliSaniye: Word;
TSaat, TDakika, TSaniye, TMiliSaniye: Double;
begin
TSaat := 0;
TDakika := 0;
TSaniye := 0;
TMiliSaniye := 0;
LabelCalismaSaati.Caption := '';
DM.SoforFisKayitDB.Open;
Bookmark := DM.SoforFisKayitDB.GetBookmark;
DM.SoforFisKayitDB.DisableControls;
try
DM.SoforFisKayitDB.First;
while not DM.SoforFisKayitDB.EOF do
begin
DecodeTime(DM.SoforFisKayitDB.FieldByName('CalismaSaati').AsDateTime, Saat, Dakika, Saniye, MiliSaniye);
TSaat := TSaat + Saat;
TDakika := TDakika + (Dakika / 60);
TSaniye := TSaniye + (Saniye / 3600);
TMiliSaniye := TMiliSaniye + MiliSaniye;
DM.SoforFisKayitDB.Next;
end;
finally
DM.SoforFisKayitDB.GotoBookmark(Bookmark);
DM.SoforFisKayitDB.FreeBookmark(Bookmark);
DM.SoforFisKayitDB.EnableControls;
ShowMessage(FloatToStr(TSaat));
ShowMessage(FloatToStr(TDakika));
ShowMessage(FloatToStr(TSaniye));
{
LabelCalismaSaati.Caption := 'Toplam Çalışma Saati : ' + DateTimeToStr(ToplamSaat) + ' Saat';
LabelToplamFis.Caption := ' Kayıt Sayısı : ' + IntToStr(DM.SoforFisKayitDB.RecordCount) + ' Adet';}
end;