Saat toplamı...

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Saat toplamı...

Mesaj gönderen brs »

İyi günler;

Media playlistteki süreleri toplama işlemi yaptırıyorum, fakat saat toplamı yirmi dört saati aşınca hata alıyorum bu durumu nasıl aşabilirim???

Açıklama: ilk önce playlistte bulunan saatleri toplamını saniye çeviriyorum, daha sonra saniyeyi saate çeviriyorum fakat bu seferde resimdeki hata oluşuyor.

Resim

Saatlerin toplamı örnek: 28:00:00 olarak almak istiyorum...

Playlisteki saatlerin topluyorum;

Kod: Tümünü seç

  for I := VIndexNo to Items.Count - 1 do
  begin
  NextT := NextT+ StrToTime(Items[I].SubItems[4]);
 end;
Sonrasında saati saniyeye çeviriyorum;

Kod: Tümünü seç

Function ConvertNextInt(Asecond: Int64): String; // Conver integer to time
var
  Tmp: Integer;
begin
  Tmp := (Asecond mod 3600);
  Result := Format('%.2d:%.2d:%.2d', [(Asecond div 3600), (Tmp div 60),
    (Tmp mod 60)]);
end;
Son olarak saniyeyi saate çeviriyorum;

Kod: Tümünü seç

Function ConvertNextTime(TheTime: TTime): Int64; // Saati saniyeye çevir
var
  Hour, Min, Sec, MSec: Word;
begin
  DecodeTime(TheTime, Hour, Min, Sec, MSec);
  Result := (Hour * 3600000) + (Min * 60000) + (Sec * 1000) + MSec;
end;
Sonuç labele veriyorum...

Kod: Tümünü seç

NextToplam.Caption := TimeToStr(StrToTime(ConvertNextInt(NSaniye)));
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2381
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Saat toplamı...

Mesaj gönderen freeman35 »

"24:53:11" tebrikler, günü uzatmayı başarmışsın :D
zaman formatlama function larını kullanırsan bu hatayı alırsın, mantıklısı bence "1 gün 00:53:11" şeklinde olmalı.
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Saat toplamı...

Mesaj gönderen brs »

:) usdat haklisiniz, 24:00 diye bir saat dilimi yok biliyorum, ama maalesef ki ilk mesejımda belirtigim gibi toplami 25;00:00 diye yaptirmam gerek...
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2381
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Saat toplamı...

Mesaj gönderen freeman35 »

dediğim gibi onu ancak kendin format('%d:%d:%d',[x,y,z]); şeklinde yaptırtabilirsin, tarih functionları gün 24 saattir diye diretir.
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Saat toplamı...

Mesaj gönderen brs »

functionlarla pek aram iyi değil, vaktiniz varsa yardımcı olabilir misiniz...
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Saat toplamı...

Mesaj gönderen SimaWB »

Yanlış anlamadıysam siz zaten istediğiniz formatı ConvertNextInt fonksiyonu ile sağlamışsınız. Problem, bunu önce saat'e sonra stringe çevirmeye çalışırken oluşuyor. Sizin fonksiyondan dönen değer zaten string olduğu için direk label'ın caption'ına atabilirsiniz.
There's no place like 127.0.0.1
Cevapla