초를 시간 분 초 형식으로 리턴
//초를 입력하면 0시간 0분 0초 식으로 리턴한다
//ex: 4600 -> 1시간 16분 40초
function GetTimeToStr(sec : double) : string;
function GetDigit(num : integer):string;
var
sss : string;
begin
sss := inttostr(num);
if length(sss) = 1 then result := '0' + sss
else
result := sss;
end;
function LeftStr(const Str: string; Size: Word): string;
begin
LeftStr := Copy(Str,1,Size)
end;
var
rsec, hhour, mmin, ssec : integer;
r_hour, r_min, r_sec : string;
begin
rsec := Trunc(sec);
if rsec < 60 then
begin
r_sec := GetDigit(rsec); if LeftStr(r_sec, 1) = '0' then delete(r_sec, 1, 1);
result := r_sec + '초';
exit;
end;
mmin := Trunc(rsec / 60);
ssec := rsec - (mmin * 60);
if mmin < 60 then
begin
r_sec := GetDigit(ssec); if LeftStr(r_sec, 1) = '0' then delete(r_sec, 1, 1);
r_min := GetDigit(mmin); if LeftStr(r_min, 1) = '0' then delete(r_min, 1, 1);
result := r_min + '분 ' + r_sec + '초';
exit;
end;
hhour := Trunc(mmin / 60);
mmin := mmin - (hhour * 60);
r_sec := GetDigit(ssec); if LeftStr(r_sec, 1) = '0' then delete(r_sec, 1, 1);
r_min := GetDigit(mmin); if LeftStr(r_min, 1) = '0' then delete(r_min, 1, 1);
r_hour := GetDigit(hhour); if LeftStr(r_hour, 1) = '0' then delete(r_hour, 1, 1);
result := r_hour + '시간 ' + r_min + '분 ' + r_sec+ '초';
end;
또는
// 다음과 같이 할 수도.....
procedure TForm1.Button1Click(Sender: TObject);
var
secs: Integer;
begin
secs := 4600;
Edit1.Text := FormatDateTime('h시간n분s초', secs / secsPerDay);
end;
'Delphi > 프로시저-함수' 카테고리의 다른 글
메모(TMemo) 팁 (0) | 2023.06.14 |
---|---|
StringGrid의 Cell에 입력 값 제한 (0) | 2023.06.02 |
델파이 RTF (Rich Text Format) 사용방법 (0) | 2021.07.21 |
델파이 JSON to Object 한줄 (0) | 2021.07.20 |
델파이 프로시저와 함수 (0) | 2021.07.19 |
댓글