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 .....
float bir sayıyı saat formatına nasıl çeviririz.
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
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.
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.
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;
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...
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...
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;
arkadaşlar çözümü ben şöyle buldum .. işinize yarayabileceği düşüncesi ile kodu buraya koyuyorum ..

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 ;