![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перевод из строки в TDateTime [D7]
Strate © (2007-08-07 15:08:00)Здравствуйте.
Воожу в текстовое поле время в формате mm:ss.zzz . Как корректно без ошибок перевести строку в тип дата-время?
Strate (2007-08-07 16:57:00) [1]Спасибо, попробуем. А надо это для построения таблицы рекордов спортсменов. Вот.
{RASkov} (2007-08-07 16:46:00) [2]> [4] Strate © (07.08.07 15:38)
Может кто и умнее что придумает, но попробуй так:
В Edit1.Text - '25:55.625'
procedure TForm1.Button1Click(Sender: TObject);
var D: TTime; N, L: Integer; H, M, S, Ms: Word; SMs: String; Fs: TFormatSettings;
begin
N:=LastDelimiter('.', Edit1.Text)-1;
L:=Length(Edit1.Text)-N;
SMs:=Copy(Edit1.Text, N+2, L);
D:=StrToTime('00:'+Copy(Edit1.Text, 1, N));
GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, Fs);
Fs.LongTimeFormat:='nn:ss.zzz';
ShowMessage(TimeToStr(D, Fs));
DecodeTime(D, H, M, S, Ms);
D:=EncodeTime(H, M, S, StrToIntDef(Sms, 0));
ShowMessage(TimeToStr(D, Fs));
end;
В общем как-то не больно мне это нравиться :)
А зачем вообще нужно вводить миллисекунды?
Strate (2007-08-07 15:38:00) [3]Написал именно так, ошибка "12:12.121 is not valid time". Естественно цифры для примера взял. Вот не пойму как правильно оформить.
{RASkov} (2007-08-07 15:27:00) [4]> [2] Strate © (07.08.07 15:17)
Так и заполняй
FormatSettings.LongTimeFormat:='mm:ss.zzz';
Strate (2007-08-07 15:17:00) [5]
> {RASkov} © (07.08.07 15:10) [1]
А можно уточнить как заполнить FormatSettings именно для случая с zzz?
{RASkov} (2007-08-07 15:10:00) [6]> [0] Strate © (07.08.07 15:08)
StrToDateTime()
+ FormatSettings