Merhaba,
Delphi yazdı:
The integral part of a Delphi TDateTime value is the number of days that have passed since 12/30/1899. The fractional part of the TDateTime value is fraction of a 24 hour day that has elapsed.
İngilizce tam bilmediğimden yanlış olabilirim. Yukarıdakine göre tdatetime ın günün 24 saatinin bölümlerinden oluştuğu gibi bir tarif var.
Sizdeki rakamı 0,63981
Kod: Tümünü seç
S := FormatDateTime('hh:mm:ss:zzz', strtofloat(edit1.text));
label2.Caption:= s;
ile 15:21:19:584 buldum.
Şimdi bunu yukarıdakine göre elle bulalım.
Kod: Tümünü seç
24*0,63981 = 15,35544 tamsayı saati verdi. 15
0,35544*60 = 21,3264 tamsayı dakikayı verdi. 21
0,3264*60 = 19,584 tamsayı saniyeyi verdi. 19
0,584*1000 = 584 tamsayı saliseyi verdi. 598
şimdi sağ taraftaki rakamlara yukarıdan aşağıya bakarsak verilen saat ile aynı olduğu görülür.
Şimdi sizin ticari programa gelelim. Onlar da Sadettin Bey'in verdiği linkteki gibi. Saniye cinsinden verilen bir rakamı saate çeviriyor. Ama bu sakıncalı durumlar yaratabilir.
Mesela Sadettin Beyin verdiği koda 99 999 şeklinde bir rakam girerseniz ,27:46:39 değeri 999 999 verilirse 277:46:39 değeri döner.
Ama delphidekine göre yaparsanız. 99 999 23:59:59:136 sonucu,
999 999 girince 23:59:59:914 sonucu çıkıyor.
Yani sizinkiler standarta uymadan saniye ye göre işlem yapan bir fonksiyonla işi yapmışlar.
Bu durumda Sadettin Bey'in yolunu takip etmeniz gerekir.
Kolay gelsin.