Saat farkı hatası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
theaviator
Üye
Mesajlar: 11
Kayıt: 01 Oca 2009 04:59

Saat farkı hatası

Mesaj gönderen theaviator »

Selamlar herkese,

Projemde iki tane edit alanım var. Birincisi başlangıç zamanını, diğeri bitiş zamanını tutuyor. Açılış saatinin dakikası kapanış saatinin dakikasından küçük veya dakikasına eşit olursa herhangi bir hata yok.

Örnek: Açılış Saati:01:00 (01:45)
Kapanış Saati :05:45 (05:00)
Toplam Mesai : 4:45 (3:65531)

Buradaki Toplam Mesai ifadesini sorunsuz alıyorum. Ancak açılış dakikası kapanıştan büyük olursa o zaman (Yukarıdaki örmek için )Toplam Mesai'de 3:65531 şeklinde bir ifade oluyor. Bu nasıl düzeltilebilir?

Not: Kırımızı renkteki parantezli ifadeler ikinci duruma emsal teşkil etmektedir.
En son theaviator tarafından 05 May 2009 04:42 tarihinde düzenlendi, toplamda 2 kere düzenlendi.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Saat farkı hatası

Mesaj gönderen conari »

farkı hangi fonksiyon veya formül ile hesaplıyorsunuz.

Kod: Tümünü seç

ilk := Now;
Label1.Caption := FormatDateTime('"Start: " hh:nn:ss.zzz', ilk);
slepp(10000);
son := Now;
Label2.Caption := FormatDateTime('"Stop: " hh:nn:ss.zzz', son);
Label3.Caption := FormatDateTime('"Diff: " hh:nn:ss.zzz', son - ilk);
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
theaviator
Üye
Mesajlar: 11
Kayıt: 01 Oca 2009 04:59

Re: Saat farkı hatası

Mesaj gönderen theaviator »

Hesaplamayı aşağıdaki şekilde yapıyorum.

procedure Timza.Edit3Change(Sender: TObject);
var
s1,s2,s3,d1,d2,d3,sn1,sn2,sn3,ms1,ms2,ms3:word;
begin
DecodeTime(StrToTime(Edit1.Text),s1,d1,sn1,ms1);
DecodeTime(StrToTime(Edit2.Text),s2,d2,sn2,ms2);
s3:=s2-s1;
d3:=d2-d1;
sn3:=sn2-sn1;
ms3:=ms2-ms1;
if (s3<10) and (d3<10) then
edit4.Text:='0'+IntToStr(s3)+':'+'0'+IntToStr(d3)
else
Edit4.Text:=IntToStr(s3)+':'+IntToStr(d3);
label5.Visible:=true;
edit4.Visible:=true;
end;
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Saat farkı hatası

Mesaj gönderen conari »

yukarıda verdiğim fonksiyonu kullansan, tam sana göre.

saat farkını verir.
farkıda DecodeTime() ile istediğin gibi parçala.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
theaviator
Üye
Mesajlar: 11
Kayıt: 01 Oca 2009 04:59

Re: Saat farkı hatası

Mesaj gönderen theaviator »

Teşekkürler Conari...
Cevapla