Другие языки программирования и технологии

Delphi!? Дана строка 05:12, как преобразовать ее в тип Время???

Своя функция, пожалуйста:

function GetTimeByStr(const aStr: string; aFlag: char): TTime;
var
h, m, s : integer;
str, hs, ms, ss: string;
begin
str := aStr;
if pos(':', str) <> 0 then
begin
case aFlag of
'm':
begin
ms := copy(str, 1, pos(':', str)-1);
delete(str, 1, pos(':', str));
if pos(':', str) <> 0 then
begin
Result := StrToTime(aStr);
exit;
end
else
Result := StrToTime('0:'+ms+':'+str);
end;
'h':
begin
hs := copy(str, 1, pos(':', str)-1);
delete(str, 1, pos(':', str));
if pos(':', str) <> 0 then
begin
Result := StrToTime(aStr);
exit;
end
else
Result := StrToTime(hs+':'+str+':0');
end;
end;
end
else
begin
s := strtoint(aStr);
m := Round(int(s / 60));
s := s - m * 60;
h := Round(int(m / 60));
m := m - h * 60;
if h < 10 then
hs := '0' + Inttostr(h)
else
hs := inttostr(h);
if m < 10 then
ms := '0' + Inttostr(m)
else
ms := inttostr(m);
if s < 10 then
ss := '0' + inttostr(s)
else
ss := inttostr(s);
Result := StrToTime(hs + ':' + ms + ':' + ss);
end;
end;

// использование
procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(TimeToStr(GetTimeByStr('05:12', 'h'))); // результат 5:12:00
showmessage(TimeToStr(GetTimeByStr('05:12', 'm'))); // результат 0:05:12
showmessage(TimeToStr(GetTimeByStr('5212', 'm'))); // результат 1:26:52
showmessage(TimeToStr(GetTimeByStr('1:05:12', 'm'))); // результат 1:05:12
end;

Думаю смысл флага aFlag понятен?
Он указывает с какого значения начинается время вводимое, с часов 'h' или минут 'm'.
Если в функцию ввести строку без ':' то она будет расцениваться как секунды.
ЧЧ
Чемпион Чемпион
1 483
Лучший ответ
http://www.delphisources. ru/pages/faq/faq_delphi_basics/TDateTime.php.html

Тут почитай
Васёк Федосимов TTime, -устраивает???

Похожие вопросы