Справочник по компонентам Delphi. Часть 1
Страница 11. Функции работы с датами и временем
Функции работы с датами и временем
В Delphi для хранения дать! и (или) времени предусмотрен формат TDateTime, представляющий собой, на самом деле, обычное число с плавающей точкой.
При этом дата представляется целой частью числа, а время — дробной. Преимущество этого подхода в том, что теперь дать! и времена можно корректно складывать и вычитать, например:
procedure TFormI.PormCreate(Sender: TObject);
Функции этой группы приведены в таблице:
function EncodeDate(Year, Month, Day: Word): TDateTime;
Преобразует дату, заданную раздельно годом, месяцем и днем, в формат TDateTime. Если они выходят за допустимые пределы, возникает ИС EConvertError.
procedure DecodeDatefDate: TDateTime; var Year, Month, Day: Word);
Преобразует дату в виде TDateTime к раздельным составляющим: году, месяцу и дню.
function EncodeTimefHour, Min, Sec, MSec: Word):
Преобразует значение времени, заданное часом, минутой, секундой и миллисекундой в формат TDateTime.
procedure DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word) ;
Преобразует значение времени в формате TDateTime в раздельные составляющие: час, минуту, секунду и миллисекунду.
function DayOfWeektDate: TDateTime): Integer;
Возвращает номер текущего дня недели от 1 (воскресенье) до 7 (суббота).
Возвращает текущую дату.
Возвращает текущее время.
Возвращает текущие дату и время.
function DateToStr(Date: TDateTime): string;
Преобразует дату Date в текстовую строку.
function TimeToStr(Time: TDateTime): string;
Преобразует время из типа TDateTime в текстовую строку.
function DateTimeToStr(DateTime: TDateTime): string;
Преобразует дату и время из типа TDateTime в текстовую строку.
function StrToDatefconst S: string): TDateTime;
Преобразует текстовую строку в дату типа TDateTime. Строка должна содержать два или три числа, разделенных символом, содержащимся в DateSeparator. Формат даты в строке определяется в соответствии со значением переменной ShortDateFormat.
function StrToTime(const S: string): TDateTime;
Преобразует текстовую строку S в значение времени. Должен использоваться формат HH:NN:SS, где SS — может принимать значения ‘AM’ или ТМ’, иначе означает секунды. Если необходимо получать время в 24-х часовой шкале, то элемент SS формата опускается. Если преобразование невозможно, возникает ИС EConvertError.
StrToDateTime(const S: string): TDateTime;
Преобразует текстовую строку S в дату и время в формате MM/DD/YY HH:NN:SS (элемент SS см. выше).
function FormatDateTime(const Format: string; DateTime: TdateTime): string;
Преобразует дату и время из типа TDateTime в текстовую строку, используя формат, задаваемый параметром Format (см. примеч. 1).
procedure DateTimeToStringfvar Result: string; const Format: string; DateTime: TDateTime);
Преобразует дату и время типа TDateTime в строку Result, используя формат, передаваемый параметром Format (см. примеч. 1).
1. Правила задания спецификатора формата для даты и времени отличаются от рассмотренных выше. В первую очередь надо иметь в виду то, что функции вроде FormatDateTime оперируют над одним значением TDateTime, а спецификаторы формата извлекают из него те или иные составные части. При этом могут использоваться:
Отображает дату, используя формат ShortDateFormat, затем отображается время в формате LongTimeFormat. Время не отображается, если дробная часть переменной DateTime нулевая.
Отображает число месяца без нуля в левом разряде (1-31).
Отображает число месяца с нулем в левом разряде (01-31).
Отображает день недели в соответствии с сокращенными именами из переменной ShortDayNames.
Отображает день недели в соответствии с полными именами из переменной LongDayNames.
Отображает дату в соответствии с форматом ShortDateFormat.
Отображает дату в соответствии с форматом LongDateFormat.
Отображает месяц как число без нуля в левом разряде (1-12).
Отображает месяц как число с нулем в левом разряде (01-12).
Отображает месяц в соответствии с сокращенными именами из переменной ShortMonthNames.
Отображает месяц в соответствии с полными именами из переменной Long MonthN am es.
Отображает год двумя цифрами.
Отображает год четырьмя цифрами.
Отображает час как число без нуля в левом разряде (0-23).
Отображает час как число с нулем в левом разряде (00-23).
Отображает минуты как число без нуля в левом разряде (0-59).
Отображает минуты как число с нулем в левом разряде (00-59).
Отображает секунды как число без нуля в левом разряде (0-59).
Отображает секунды как число с нулем в левом разряде (00-59).
Отображает время в соответствии с форматом ShortTimeFormat.
Отображает время в соответствии с форматом LongTimeFormat.
Отображает время в 12-часовой шкале. ‘AM’ означает часы до полудня, ‘РМ’ — часы после полудня.
Отображает время в 12-часовой шкале. При этом для времени до полудня отображается содержимое переменной TimeAMString, а после полудня — TimePMString.
Отображает время в 12-часовой шкале, ‘а’ означает часы до полудня, ‘р’ — часы после полудня.
Отображает символ — разделитель даты, содержащийся в переменной DataSeparator.
Отображает символ — разделитель времени, содержащийся в переменной TimeSeparator.
Символы, заключаемые в простые или двойные кавычки, отображаются как есть и не подвергаются форматированию.
Например, результатом вызова функции с параметрами
FormatDateTime (‘ «Совещание состоится в» dddd, dirrmim, yyyy, ‘ + ‘ «в» hh:nn’, StrToDateTime(’12/31/95 23:55′)) ;
будет строка ‘Совещание состоится в среду, 31 декабря 1995 в 23:55’ (естественно, если вы переопределили значения элементов массива LongMonth-Names).
3. Спецификаторы могут быть указаны как в верхнем, так и в нижнем регистрах символов — это не играет роли.
Delphi/Перевод переменных
Переменные можно перевести из одного типа в другой. Например, нужно в компоненте Edit отобразить число. Чтобы, изменить текст в Edit’e, нужно изменить его свойство Text. Что написано в Text, то отобразится в самом Edit’e. Тип свойтсва Text — string. Как отобразить число в Edit’e? Все очень просто. Существует команда IntToStr . Давайте мы её разберем.
Чтобы изменить свойство Text, нужно его «назвать». Общий вид вызова свойства какого-либо компонента имеет вид:
Теперь напишем простую программу, которая переводит переменную типа integer в тип string.
А как отобразить дробное число в Edit’e? Также как с целым числом, только команда другая — FloatToStr . Напишем такую же программу, только вместо integer — real.
Теперь усложним нашу программу — теперь она будет складывать числа в 2-х Edit’ах, а показывать результат в Edit 3-й. У вас появился вопрос: «Как сложить два числа из Edit’a?» Нужна обратная команда — StrToInt , она переводит string в integer.
Но мы поступили хитро — мы не использовали ни одной переменной. Можно было использовать их, но так было сложней. И напоследок про команду — StrToFloat , такая же как предыдущая, только вместо integer — real.
LongDateFormat — Переменная Delphi
TMainThread = class(TThread)
private
class var FThreads: Integer;
protected
procedure Execute; override;
end;
���� �������
Re: ����� ���������� ��� ������� [new] |
|