Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Создание переменной типа TDateTime


Автор: faost 22.2.2005, 19:34
Как из переменной типа TDateTime получить год, месяц, день понятно:

Код

var
nowYear, nowMonth, nowDay: Word;
begin
  DecodeDate(Date, nowYear, nowMonth, nowDay);
end;


А как, если знаешь, допустим, год, записать его в переменную типа TDateTime?
Добавлено @ 19:36
Сорри, забыл название темы написать: "Создание переменной типа TDateTime"

Автор: _hunter 22.2.2005, 19:38
а в справку глянуть слабо? ;)
EncodeDate()

Автор: Poseidon 23.2.2005, 03:19
Можно также еще воспользоваться функцией StrToDateTime из SysUtils. Вот примерчик:
Код
var d: TDateTime;
begin
d:= StrToDateTime('1.01.2005');
end;


Только могут возникать ошибки из-за неправильной записи аргумента функции.

Автор: SoWa 23.2.2005, 04:56
Да, это зависит от того, какой у тебя разделитель. Точка или Запятая...

Автор: Snowy 23.2.2005, 11:44
Если бы дело было только в разделителе. Разные форматы даты, разделители, порядок указания день-месяц-год. Гораздо надежней использовать EncodeDate.
Можно конечно просто присвоить нужное количество дней, т.к. TDateTime это число.
Но такой способ редко оправдан. Разве что нужно прибавить к имеющейся дате год или месяц, не прибегая к декодированию и обратному кодированию.

Автор: Poseidon 25.2.2005, 03:27
В общем-то EncodeDate целесообразней использовать, но вопрос-то был
Цитата
как, если знаешь, допустим, год, записать его в переменную типа TDateTime?
. Так что, по-моему, чем больше вариантов, тем лучше. А выбирать какой самый подходящий - это дело каждого.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)