float bir sayıyı saat formatına nasıl çeviririz.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
mertcenk3
Üye
Mesajlar: 41
Kayıt: 21 Eki 2003 02:15
Konum: istanbul
İletişim:

float bir sayıyı saat formatına nasıl çeviririz.

Mesaj gönderen mertcenk3 »

elimde float bir sayı var bu sayıyı saat formatına nasıl çevirebilirim..
örneğin ::74,2500 sayısının karşılığını 74:15:00 (saat:dakika:saniye) gibi gösterebilsin..
yardımcı olacak arkadaşlara şimdiden teşekkürler .....
P206
Kıdemli Üye
Mesajlar: 395
Kayıt: 17 Haz 2003 12:36
Konum: İstanbul

Mesaj gönderen P206 »

Merhaba,
Tam olarak nasıl bişey yapmak istediğini anlamadım ama,

var
saat,dakika,saniye,zaman:string;

begin
zaman:=Floattostr(742500);
saat:=copy(zaman,1,2);
dakika:=copy(zaman,3,2);
saniye:=copy(zaman,5,2);
zaman:=saat+':'+dakika+':'+saniye
end;
gibi bişeyle saat formatında gösterebilirsin.

Eğer başka bir şey istiyorsan tekrar yazabilirsin.

Kolay Gelsin,
İyi Çalışmalar.
Selman72
Üye
Mesajlar: 8
Kayıt: 15 Nis 2004 04:27

Mesaj gönderen Selman72 »

Aşağıdaki bigi bir kod sanırtım işini çözecektir.

Kod: Tümünü seç

Function TForm1.saat(a:Double) : String;

Var Sa,Dk,Sn :Double;

Begin
   Sa := Int(a);
   Dk := Int((a-Sa)*60);
   Sn := Int(((a-Sa)-(Dk/60))*3600);
  Result := Format('%2.0n:%2.0n:%2.0n',[Sa,Dk,Sn]);
end;
Kullanıcı avatarı
mertcenk3
Üye
Mesajlar: 41
Kayıt: 21 Eki 2003 02:15
Konum: istanbul
İletişim:

Mesaj gönderen mertcenk3 »

yapmak istediğim ;;çalışan personelin çalışma saatlerinin toplamını alıyorum..çalışan her personelin çalışma süresini (çalışma bitiş süresinden çalışma başlangıç süresini çıkararak) buluyorum ...
time çalışma =(time2 - time1) gibi sonra bu time çalışma sürelerini float sayılara çeviriyorum .. raporlarda toplam çalışma süresini alırken bu floatları topluyorum , ama toplam çalışma süresi float bir sayı oluyor. örneğin toplam çalışma süresi 100,5 gibi bir float sayı gerçekte 100:30:00(saat:dak:sn) ,, fakat toplamı bu formatta gösteremiyorum...

ilginiz için şimdiden teşekkürler...
Kullanıcı avatarı
akgun83
Üye
Mesajlar: 106
Kayıt: 26 Eyl 2003 11:34

Mesaj gönderen akgun83 »

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
a:integer;
begin
a:=Trunc(strtofloat(edit1.text));
showmessage(inttostr(a)+':'+floattostr(60 * (strtofloat(edit1.text)-a)));
end;
Kullanıcı avatarı
mertcenk3
Üye
Mesajlar: 41
Kayıt: 21 Eki 2003 02:15
Konum: istanbul
İletişim:

Mesaj gönderen mertcenk3 »

arkadaşlar çözümü ben şöyle buldum .. işinize yarayabileceği düşüncesi ile kodu buraya koyuyorum .. :D

Kod: Tümünü seç

procedure TForm1.Button2Click(Sender: TObject);
Var
 Sa,Dk,Sn,a :Double;
 Sa1,Dk1,Sn1 :String ;
begin
   a:=StrToFloat(Edit2.Text) ;
Begin
   Sa := Int(a);
   Dk := Int((a-Sa)*60);
   Sn := Int(((a-Sa)-(Dk/60))*3600);
//  edit1.Text := Format('%2.0n:%2.0n:%2.0n',[Sa,Dk,Sn]);
end;

begin
Sa1:=floattostr(Sa) ;
end ;
begin
Dk1:=floattostr(Dk) ;
begin
if Dk1='0' then
begin
 Dk1:='00' ;
end
else
if Dk1='1' then
begin
 Dk1:='01' ;
end
else
if Dk1='2' then
begin
 Dk1:='02' ;
 end
else
if Dk1='3' then
begin
 Dk1:='03' ;
 end
else
if Dk1='4' then
begin
 Dk1:='04' ;
 end
else
if Dk1='5' then
begin
 Dk1:='05' ;
 end
else
if Dk1='6' then
begin
 Dk1:='06' ;
 end
else
if Dk1='7' then
begin
 Dk1:='07' ;
 end
else
if Dk1='8' then
begin
 Dk1:='08' ;
 end
else
if Dk1='9' then
begin
 Dk1:='09' ;
end;
end;
end;


begin
Sn1:=floattostr(Sn) ;
begin
if Sn1='0' then
begin
 Sn1:='00' ;
end
else
if Sn1='1' then
begin
 Sn1:='01' ;
end
else
if Sn1='2' then
begin
 Sn1:='02' ;
 end
else
if Sn1='3' then
begin
 Sn1:='03' ;
 end
else
if Sn1='4' then
begin
 Sn1:='04' ;
 end
else
if Sn1='5' then
begin
 Sn1:='05' ;
 end
else
if Sn1='6' then
begin
 Sn1:='06' ;
 end
else
if Sn1='7' then
begin
 Sn1:='07' ;
 end
else
if Sn1='8' then
begin
 Sn1:='08' ;
 end
else
if Sn1='9' then
begin
 Sn1:='09' ;
end;
end;
end;
edit1.Text := (Sa1 + ':' + Dk1 + ':' + Sn1) ;

end ;
Cevapla