10.7 Использование
После того, как хелпер класса определен, его методы могут быть использованы всякий раз, когда хелпер класса находится в области видимости. Это означает, что, если он определен в отдельном модуле, то этот модуль должен находиться в пункте uses везде, где используются методы хелпера класса.
Рассмотрим следующий модуль:
TObjectHelper = class helper for TObject
function AsString ( const aFormat : String ): String ;
function TObjectHelper . AsString ( const aFormat : String ): String ;
Result := Format ( aFormat , [ ToString ]);
Тогда будет скомпилирован следующий код:
O := TObject . Create ;
Writeln ( O . AsString ( ‘Объект «O» в виде строки : %s’ ));
Но, если создан второй модуль ( ohb ) :
TAObjectHelper = class helper for TObject
function MemoryLocation : String ;
function TAObjectHelper . MemoryLocation : String ;
Result := format ( ‘%p’ ,[ pointer ( Self )]);
И он добавлен после первого модуля в пункте uses :
O := TObject . Create ;
Writeln ( O . AsString ( ‘Объект «O» в виде строки : %s’ ));
Writeln ( O . MemoryLocation );
Тогда компилятор будет жаловаться, что он не знает метод ‘AsString’ . Это происходит потому, что компилятор перестает искать хелпер класса, как только встречает первый хелпер класса. Так как модуль ohb расположен последним в пункте uses, компилятор будет использовать только TAObjectHelper как хелпер класса.
Решение состоит в том, чтобы повторно реализовать модуль ohb :
TAObjectHelper = class helper ( TObjectHelper ) for TObject
function MemoryLocation : String ;
function TAObjectHelper . MemoryLocation : String ;
Result := format ( ‘%p’ ,[ pointer ( Self )]);
А после замены модуля ohb на ohc , пример будет компилироваться и работать, как ожидалось.
Обратите внимание, что включить модуль с хелпером класса один раз в проекте недостаточно. Модуль должен быть включен всякий раз, когда хелпер класса необходим.
Uses sysutils в паскале что это
SysUtils
| Unit | Имя | Описание |
| Процедура | Abort | Прерывает обработку команд и выходит к последнему исключительному блоку |
| Функция | AnsiCompareStr | Сравнение двух строк на равенство |
| Функция | AnsiCompareText | Сравнение двух строк на равенство |
| Функция | AnsiLowerCase | Символы верхнего регистра изменяются в строку со строчными буквамм |
| Функция | AnsiPos | Находит позицию одной строки в другой |
| Процедура | AppendStr | Конкатенация одной строки в конец другой |
| Процедура | Beep | Делает звук гудка |
| Функция | ChangeFileExt | Изменяет расширение имени файла |
| Функция | CompareStr | Сравнивает две строки, чтобы увидеть, какая из них больше |
| Функция | CompareText | Сравнивает две строки, игнорируя регистр |
| Функция | CreateDir | Создаёт директорию |
| Переменная | CurrencyDecimals | Определяет число десятичных цифр в функции Format |
| Переменная | CurrencyFormat | Определяет размещение строки валюты в функции показа валюты |
| Переменная | CurrencyString | Строка валюты, используемая в функциях отображения валюты |
| Функция | CurrToStr | Преобразует денежную величину в строку |
| Функция | CurrToStrF | Преобразует денежную величину в строку с форматированием |
| Функция | Date | Возвращает текущую дату |
| Переменная | DateSeparator | Символ используемый для разделения полей отображаемой даты |
| Функция | DateTimeToFileDate | Преобразует значение TDateTime в формат date/time формат файла |
| Функция | DateTimeToStr | Конвертирует значение даты и времени TDateTime в строку |
| Процедура | DateTimeToString | Огромные возможности форматирования даты в строку |
| Функция | DateToStr | Преобразует значение даты TDateTime в строку |
| Функция | DayOfWeek | Выдает индекс дня недели для значения TDateTime |
| Переменная | DecimalSeparator | Символ используемый для отображения десятичной точки |
| Процедура | DecodeDate | Извлекает значения года, месяца, дня из TDateTime переменной |
| Процедура | DecodeDateTime | Разбивает TDateTime переменную на ее части даты/времени |
| Процедура | DecodeTime | Разбивает значение TDateTime на отдельные значения времени |
| Функция | DeleteFile | Удаляет файл, указанный в параметре |
| Функция | DirectoryExists | Возвращает true, если указанная директория существует |
| Функция | DiskFree | Выдает число свободных байтов на указанном диске |
| Функция | DiskSize | Выдает размер указанного диска в байтах |
| Функция | EncodeDate | Формирует значение TDateTime из значений года, месяца и дня |
| Функция | EncodeTime | Формирует значение TDateTime из значений часа, минуты, секунды и миллисеккунды |
| Функция | ExtractFileDir | Иизвлекает из полного имени файла название папки |
| Функция | ExtractFileDrive | Извлекает из полного имени файла название диска |
| Функция | ExtractFileExt | Извлекает из полного имени файла его расширение |
| Функция | ExtractFileName | Извлекает из полного имени файла краткое имя файла |
| Функция | ExtractFilePath | Извлекает из полного имени файла название патча |
| Функция | FileAge | Получение датя/время последнего изменения файла, не открывая его |
| Функция | FileDateToDateTime | Конвертирует формат даты/времени файла в значение TDateTime |
| Функция | FileExists | Возвращает True если указанный файл существует |
| Функция | FileGetAttr | Выдаёт атрибуты файла |
| Функция | FileSearch | Поиск файла в одной или более папках |
| Функция | FileSetAttr | Устанавливает атрибуты файла |
| Функция | FindClose | Закрывает успешный FindFirst поиск файла |
| Функция | FindCmdLineSwitch | Определяет, был передан некоторый параметр выключатель |
| Функция | FindFirst | Находит все файлы, соответствующие маске файла и атрибутов |
| Функция | FindNext | Находит следующий файл после успешного FindFirst |
| Функция | FloatToStr | Преобразует значение с плавающей запятой в строку |
| Функция | FloatToStrF | Преобразует значение с плавающей запятой в строку с форматированием |
| Функция | ForceDirectories | Создаёт новый путь каталогов |
| Функция | Format | Богатое форматирование чисел и текста в строке |
| Функция | FormatCurr | Богатое форматирование значений валюты в строку |
| Функция | FormatDateTime | Богатое форматирование переменной TDateTime в строку |
| Функция | FormatFloat | Богатое форматирование числа с плавающей запятой в строку |
| Процедура | FreeAndNil | Освобождение памяти объекта и установка его в nil |
| Процедура | FreeMem | Освобождает память, используемую переменной |
| Функция | GetCurrentDir | Возвращает текущий каталог (диск плюс каталог) |
| Процедура | GetLocaleFormatSettings | Получает региональные значения для безопасных потоков функций. |
| Функция | IncMonth | Увеличивает TDateTime переменную на некоторое число месяцев |
| Функция | IntToHex | Преобразует целое число в шестнадцатеричную строку |
| Функция | IntToStr | Конвертирует целое число в строку |
| Функция | IsLeapYear | Возвращает True, если данный календарный год високосный |
| Функция | LastDelimiter | Находит последнюю позицию указанных символов в строке |
| Переменная | LongDateFormat | Переводит длинную версию даты в строковый формат |
| Переменная | LongDayNames | Массив названий дней недели, начинается с 1 = Воскресенье |
| Переменная | LongMonthNames | Массив названий месяцев, начинается с 1 = Январь |
| Переменная | LongTimeFormat | Длинная версия времени в строковом формате |
| Функция | LowerCase | Изменяет символы верхнего регистра в строке в строчные буквы |
| Константа | MinsPerDay | Выдает число минут в дне |
| Константа | MonthDays | Выдает число дней в месяце |
| Переменная | NegCurrFormat | Определяет отображение отрицательного количества форматированной валюты |
| Функция | Now | Выдает текущую дату и время |
| Функция | RemoveDir | Позволяет удалить директорию |
| Функция | Rename | Переименовка фала |
| Функция | RenameFile | Переименование файла или директории |
| Процедура | ReplaceDate | Изменяет только часть даты TDateTime переменной |
| Процедура | ReplaceTime | Изменяет только часть времени TDateTime переменной |
| Константа | SecsPerDay | Выдает число секунд в дне |
| Функция | SetCurrentDir | Изменяет текущую директорию |
| Переменная | ShortDayNames | Массив названий дней недели, начиная с 1 = Воскресенье |
| Переменная | ShortInt | Целочисленный тип поддерживает значения от — 128 до 127 |
| Переменная | ShortMonthNames | Массив названий дней месяца, начиная с 1 = Январь |
| Переменная | ShortTimeFormat | Короткая версия времени в строковый формат |
| Функция | StrScan | Ищет заданные символы в строке |
| Функция | StrToCurr | Преобразует числовую строку в денежное выражение |
| Функция | StrToDate | Конвертирует строку с датой в значение типа TDateTime |
| Функция | StrToDateTime | Конвертирует строку с датой и временем в значение типа TDateTime |
| Функция | StrToFloat | Преобразует числовую строку в значение с плавающей запятой |
| Функция | StrToInt | Преобразует строку с целым значением в Integer |
| Функция | StrToInt64 | Преобразует строку с целым значением в Int64 |
| Функция | StrToInt64Def | Преобразует строку с целым значением в Int64, учитывая значение по умолчанию |
| Функция | StrToIntDef | Преобразует строку с значение с типом Integer, учитывая значение по умолчанию |
| Тип | TFloatFormat | Форматы, используемые в функциях отображения чисел с плавающей запятой |
| Тип | TFormatSettings | Запись для содержания региональных значений для thread-safe функций |
| Переменная | ThousandSeparator | Символ, используемый для отображения разделителя тысяч |
| Функция | Time | Возвращает текущее время |
| Переменная | TimeAMString | Определяет значение AM в процедуре DateTimeToString |
| Переменная | TimePMString | Определяет значение PM в процедуре DateTimeToString |
| Переменная | TimeSeparator | Символ, используемый для разделения полей времени |
| Функция | TimeToStr | Конвертирует значение времени типа TDateTime в строку |
| Тип | TReplaceFlags | Определяет опции для подпрограммы StringReplace |
| Функция | Trim | Удаляет начальные и конечные пробелы в строке |
| Функция | TrimLeft | Удаляет начальные пробелы в строке |
| Функция | TrimRight | Удаляет конечные пробелы в строке |
| Тип | TSearchRec | Запись, используемая для хранения данных в FindFirst и FindNext |
| Тип | TSysCharSet | Символы, используемые снабженной строкой анализирующих функций |
| Переменная | TwoDigitYearCenturyWindow | Устанавливает порог столетия для преобразований строки года из 2 цифр |
| Функция | UpperCase | Изменяет символы в строке из нижнего регистра в верхний |
| Функция | WrapText | Добавьте перенос строки в строку, чтобы имитировать перенос слов |
| Delphi справочник Навигация |
| По первой букве |
| A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
| System SysUtils StrUtils DateUtils |
FileCtrl ConvUtils StdConvs Math |
Classes Dialogs Types Variants |
| Compiler directives Directives Keywords |
Types Variables Constants |
Functions Procedures |
Все типы — классы
Можно долго программировать в PascalABC.NET в обычном стиле и не замечать, что все типы стали классами. Но в один прекрасный момент кто-то после имени переменной нажмет точку и . получит список методов для этой переменной как объекта класса. Например, достаточно описать целую переменную
var i: integer;
и потом набрать в коде
begin i.
После точки всплывет окно с так называемыми экземплярными методами, применимыми к переменной i класса integer. Их всего 6, и на первых порах только один метод из них полезен. Это метод ToString, преобразующий значение i к строке:
var s: string; s := i.ToString;
Точечная запись в самом начале обучения воспринимается в основном в штыки: слишком непосилен груз нового в обучении. Вам будут говорить: 1) это не Паскаль! 2) это только в этом дурацком .NET так! 3) объекты школьникам — это зло, а для студентов надо давать C++ 4) .
Но факт остается фактом — так писать можно, а значит, все равно так будут писать, и вряд ли это можно будет удержать. Ведь вспомнить имя стандартной функции
s := IntToStr(i);
будет куда как не проще. К тому же, в Delphi для ее использования модуль SysUtils подключать надо. А, да, забыл — есть еще процедура Str с двумя параметрами, один из которых — ссылочный — она еще в теме «Строки» проходится — где-то через полгодика. А здесь мы получили интуитивно понятную запись и сразу начали ее использовать:
Эту запись можно трактовать двояко. Можно считать, что мы даем команду ToString объекту i, и он по этой команде возвращает свое строковое представление. Можно считать, что объект i имеет в своем составе команду ToString и сам ее вызывает. Последняя идея мне нравится больше: все объекты — активные, каждый имеет свою систему команд и готов их вызывать в любой момент.
Здесь мы сталкиваемся с еще одним психологическим барьером: если даже тип integer — класс, то наверняка программа будет работать очень медленно, ведь в ма-аленькой переменной integer — столько методов! они наверняка все и замедляют! Увы — это неверно. На скорость работы программы наличие большого числа методов у объекта класса никак не сказывается.
Но — продолжим! Однажды начав исследовать методы классов, кто-то обязательно наберет точку после имени типа, а не имени переменной:
integer.
И получит. во всплывающем окне выпадет список так называемых статических методов класса (их называют также классовыми методами, поскольку они связаны с классом, а не с переменной). Те, кто знают, что такое статические методы, смело могут начинать критиковать их использование прямо сейчас. Мы же продолжим наше исследование. Кстати, пока мы тут обсуждали, всплывающее окно погасло, так что самое время его вновь показать, нажав Ctrl-пробел.
Кроме статических методов, мы увидим также две константы:
integer.MaxValue integer.MinValue
По названиям нетрудно догадаться, что они обозначают наибольшее и наименьшее значения для переменных типа integer. Знатоки скажут, что вместо integer. MaxValue проще написать MaxInt и будут правы — короче. Только подобные константы определены во всех числовых типах: real.MaxValue, byte.MaxValue, word.MaxValue и т.д. А длинная запись — ну, это не самое страшное. Разве для объяснения мы используем самые короткие слова? К тому же, понятно, что значение MaxValue связано именно с типом integer и ни с каким другим.
Среди статических методов класса integer выделяется метод Parse для преобразования строк в целые:
i := integer.Parse('345');
В переменную i, как мы догадываемся, попадет значение 345. Конечно, если мы подадим на вход методу Parse строку, не являющуюся числом, то возникнет исключение, его надо будет обрабатывать, либо использовать статический метод TryParse:
var b: boolean := integer.TryParse('345',i);
Не сможет преобразовать — так и вернет False. Короче, надо разбираться. Отложим пока.
Заметим, что наш алгоритм исследования статических и экземплярных методов класса integer напоминает действия маленького ребенка, исследующего мир: он ПРОБУЕТ ВСЕ и что-то у него получается. Это что-то он будет повторять много раз, потому что ему понравилось, а непонятное отложит — до поры. Это — лучший из известных простых способов исследования мира 🙂
Классов в .NET — тысячи, так что исследования хватит надолго. Наша задача — только дать пищу для размышлений. Ну, например, в классе real мы увидим константы
real.PositiveInfinity; // бесконечность real.NegativeInfinity; // минус бесконечность real.NaN; // не число real.Epsilon; // самое маленькое положительное вещественное
Это выглядит странно, но, может, кто и догадается, что теперь при работе с вещественными числами можно получить бесконечность, а значит, переполнения никогда не произойдет:
Интересно еще поделить на ноль и извлечь корень из отрицательного числа:
r := r / 0; writeln(r); r := sqrt(-1); writeln(r);
Дальнейшие исследования можно продолжить с типом DateTime. Для этого, правда, придется, подключить пространство имен System:
uses System;
DateTime.Now вернет текущие дату и время, их можно присвоить переменной типа DateTime, а потом вычленить из нее день, месяц, год, часы, минуты и секунды с помощью свойств Day, Month, Year, Hour, Minute, Second:
begin var d: DateTime := DateTime.Now; writeln(d.Day,'.',d.Month,'.',d.Year); writeln(d.Hour,':',d.Minute,':',d.Second); end.
Как, вы еще не знаете, что такое пространства имен и свойства классов? О, да у вас еще все впереди!
Паскаль – дата и время
Большинство программ, которые вы пишете, нуждаются в реализации некоторой формы функций даты, возвращающих текущую дату и время. Свидания настолько важны в повседневной жизни, что с ними легко работать, не задумываясь. Паскаль также предоставляет мощные инструменты для арифметики дат, которые упрощают манипулирование датами. Однако фактическое имя и работа этих функций различны для разных компиляторов.
Получение текущей даты и времени
Функция Pascal TimeToString дает вам текущее время в форме с разделителями (:). В следующем примере показано, как получить текущее время –
program TimeDemo; uses sysutils; begin writeln ('Current time : ',TimeToStr(Time)); end.
Когда приведенный выше код был скомпилирован и выполнен, он дает следующий результат –
Current time : 18:33:08
Функция Date возвращает текущую дату в формате TDateTime . TDateTime – это двойное значение, которое требует некоторого декодирования и форматирования. Следующая программа демонстрирует, как использовать ее в вашей программе для отображения текущей даты:
Program DateDemo; uses sysutils; var YY,MM,DD : Word; begin writeln ('Date : ',Date); DeCodeDate (Date,YY,MM,DD); writeln (format ('Today is (DD/MM/YY): %d/%d/%d ',[dd,mm,yy])); end.
Когда приведенный выше код был скомпилирован и выполнен, он дает следующий результат –
Date: 4.111300000000000E+004 Today is (DD/MM/YY):23/7/2012
Функция Now возвращает текущую дату и время –
Program DatenTimeDemo; uses sysutils; begin writeln ('Date and Time at the time of writing : ',DateTimeToStr(Now)); end.
Когда приведенный выше код был скомпилирован и выполнен, он дает следующий результат –
Date and Time at the time of writing : 23/7/2012 18:51:
Free Pascal предоставляет простую структуру меток времени с именем TTimeStamp , которая имеет следующий формат:
type TTimeStamp = record Time: Integer; Date: Integer; end;
Различные функции даты и времени
Free Pascal предоставляет следующие функции даты и времени –
function DateTimeToFileDate (DateTime: TDateTime): LongInt;
Преобразует тип DateTime в дату файла.
Функция DateTimeToStr (DateTime: TDateTime) :;
Создает строковое представление DateTime
function DateTimeToStr (DateTime: TDateTime; const FormatSettings: TFormatSettings) :;
Создает строковое представление DateTime
процедура DateTimeToString (out Результат:; const FormatStr:; const DateTime: TDateTime);
Создает строковое представление DateTime
процедура DateTimeToString (out Результат:; const FormatStr:; const DateTime: TDateTime; const FormatSettings: TFormatSettings);
Создает строковое представление DateTime
процедура DateTimeToSystemTime (DateTime: TDateTime; выход SystemTime: TSystemTime);
Преобразует DateTime в системное время
function DateTimeToTimeStamp (DateTime: TDateTime): TTimeStamp; Преобразует DateTime в метку времени
Функция DateToStr (Date: TDateTime) :;
Создает строковое представление даты
function DateToStr (Date: TDateTime; const FormatSettings: TFormatSettings) :;
Создает строковое представление даты
Функция Date: TDateTime;
Получает текущую дату
function DayOfWeek (DateTime: TDateTime): Integer;
Получает день недели
процедура DecodeDate (Дата: TDateTime; год выхода: слово; месяц выхода: слово; день выхода: слово);
Декодирует DateTime в год, месяц и день
процедура DecodeTime (время: TDateTime; вне часа: слово; вне минуты: слово; вне секунды: слово; вне миллисекунды: слово);
Декодирует DateTime в часы, минуты и секунды
функция EncodeDate (год: слово; месяц: слово; день: слово): TDateTime;
Кодирует год, день и месяц в DateTime
функция EncodeTime (час: слово; минута: слово; секунда: слово; миллисекунда: слово): TDateTime;
Кодирует часы, минуты и секунды в DateTime
Функция FormatDateTime (const FormatStr:; DateTime: TDateTime) :;
Возвращает строковое представление DateTime
функция FormatDateTime (const FormatStr:; DateTime: TDateTime; const FormatSettings: TFormatSettings) :;
Возвращает строковое представление DateTime
функция IncMonth (const DateTime: TDateTime; NumberOfMonths: Integer = 1): TDateTime;
Добавляет 1 к месяцу
function IsLeapYear (Год: Слово): Boolean;
Определяет, является ли год високосным
function MSecsToTimeStamp (MSecs: Comp): TTimeStamp;
Преобразует количество миллисекунд в метку времени
функция сейчас: TDateTime;
Получает текущую дату и время
function StrToDateTime (const S :): TDateTime;
Преобразует строку в DateTime
function StrToDateTime (const s: ShortString; const FormatSettings: TFormatSettings): TDateTime;
Преобразует строку в DateTime
function StrToDateTime (const s: AnsiString; const FormatSettings: TFormatSettings): TDateTime;
Преобразует строку в DateTime
function StrToDate (const S: ShortString): TDateTime;
Преобразует строку в дату
function StrToDate (const S: Ansistring): TDateTime;
Преобразует строку в дату
function StrToDate (const S: ShortString; разделитель: Char): TDateTime;
Преобразует строку в дату
function StrToDate (const S: AnsiString; разделитель: Char): TDateTime;
Преобразует строку в дату
function StrToDate (const S: ShortString; const useformat:; разделитель: Char): TDateTime;
Преобразует строку в дату
function StrToDate (const S: AnsiString; const useformat:; separator: Char): TDateTime;
Преобразует строку в дату
function StrToDate (const S: PChar; Len: Integer; const useformat:; separator: Char = # 0): TDateTime;
Преобразует строку в дату
function StrToTime (const S: Shortstring): TDateTime;
Преобразует строку во время
function StrToTime (const S: Ansistring): TDateTime;
Преобразует строку во время
function StrToTime (const S: ShortString; разделитель: Char): TDateTime;
Преобразует строку во время
function StrToTime (const S: AnsiString; разделитель: Char): TDateTime;
Преобразует строку во время
function StrToTime (const S:; FormatSettings: TFormatSettings): TDateTime;
Преобразует строку во время
function StrToTime (const S: PChar; Len: Integer; разделитель: Char = # 0): TDateTime;
Преобразует строку во время
function SystemTimeToDateTime (const SystemTime: TSystemTime): TDateTime;
Преобразует системное время в datetime
function TimeStampToDateTime (const TimeStamp: TTimeStamp): TDateTime;
Преобразует метку времени в DateTime
function TimeStampToMSecs (const TimeStamp: TTimeStamp): comp;
Преобразует метку времени в количество миллисекунд
функция TimeToStr (Time: TDateTime) :;
Возвращает строковое представление времени
function TimeToStr (Time: TDateTime; const FormatSettings: TFormatSettings) :;
Возвращает строковое представление времени
функция Time: TDateTime;
Получить текущее время
function DateTimeToFileDate (DateTime: TDateTime): LongInt;
Преобразует тип DateTime в дату файла.
Функция DateTimeToStr (DateTime: TDateTime) :;
Создает строковое представление DateTime
function DateTimeToStr (DateTime: TDateTime; const FormatSettings: TFormatSettings) :;
Создает строковое представление DateTime
процедура DateTimeToString (out Результат:; const FormatStr:; const DateTime: TDateTime);
Создает строковое представление DateTime
процедура DateTimeToString (out Результат:; const FormatStr:; const DateTime: TDateTime; const FormatSettings: TFormatSettings);
Создает строковое представление DateTime
процедура DateTimeToSystemTime (DateTime: TDateTime; выход SystemTime: TSystemTime);
Преобразует DateTime в системное время
function DateTimeToTimeStamp (DateTime: TDateTime): TTimeStamp; Преобразует DateTime в метку времени
Функция DateToStr (Date: TDateTime) :;
Создает строковое представление даты
function DateToStr (Date: TDateTime; const FormatSettings: TFormatSettings) :;
Создает строковое представление даты
Функция Date: TDateTime;
Получает текущую дату
function DayOfWeek (DateTime: TDateTime): Integer;
Получает день недели
процедура DecodeDate (Дата: TDateTime; год выхода: слово; месяц выхода: слово; день выхода: слово);
Декодирует DateTime в год, месяц и день
процедура DecodeTime (время: TDateTime; вне часа: слово; вне минуты: слово; вне секунды: слово; вне миллисекунды: слово);
Декодирует DateTime в часы, минуты и секунды
функция EncodeDate (год: слово; месяц: слово; день: слово): TDateTime;
Кодирует год, день и месяц в DateTime
функция EncodeTime (час: слово; минута: слово; секунда: слово; миллисекунда: слово): TDateTime;
Кодирует часы, минуты и секунды в DateTime
Функция FormatDateTime (const FormatStr:; DateTime: TDateTime) :;
Возвращает строковое представление DateTime
функция FormatDateTime (const FormatStr:; DateTime: TDateTime; const FormatSettings: TFormatSettings) :;
Возвращает строковое представление DateTime
функция IncMonth (const DateTime: TDateTime; NumberOfMonths: Integer = 1): TDateTime;
Добавляет 1 к месяцу
function IsLeapYear (Год: Слово): Boolean;
Определяет, является ли год високосным
function MSecsToTimeStamp (MSecs: Comp): TTimeStamp;
Преобразует количество миллисекунд в метку времени
функция сейчас: TDateTime;
Получает текущую дату и время
function StrToDateTime (const S :): TDateTime;
Преобразует строку в DateTime
function StrToDateTime (const s: ShortString; const FormatSettings: TFormatSettings): TDateTime;
Преобразует строку в DateTime
function StrToDateTime (const s: AnsiString; const FormatSettings: TFormatSettings): TDateTime;
Преобразует строку в DateTime
function StrToDate (const S: ShortString): TDateTime;
Преобразует строку в дату
function StrToDate (const S: Ansistring): TDateTime;
Преобразует строку в дату
function StrToDate (const S: ShortString; разделитель: Char): TDateTime;
Преобразует строку в дату
function StrToDate (const S: AnsiString; разделитель: Char): TDateTime;
Преобразует строку в дату
function StrToDate (const S: ShortString; const useformat:; разделитель: Char): TDateTime;
Преобразует строку в дату
function StrToDate (const S: AnsiString; const useformat:; separator: Char): TDateTime;
Преобразует строку в дату
function StrToDate (const S: PChar; Len: Integer; const useformat:; separator: Char = # 0): TDateTime;
Преобразует строку в дату
function StrToTime (const S: Shortstring): TDateTime;
Преобразует строку во время
function StrToTime (const S: Ansistring): TDateTime;
Преобразует строку во время
function StrToTime (const S: ShortString; разделитель: Char): TDateTime;
Преобразует строку во время
function StrToTime (const S: AnsiString; разделитель: Char): TDateTime;
Преобразует строку во время
function StrToTime (const S:; FormatSettings: TFormatSettings): TDateTime;
Преобразует строку во время
function StrToTime (const S: PChar; Len: Integer; разделитель: Char = # 0): TDateTime;
Преобразует строку во время
function SystemTimeToDateTime (const SystemTime: TSystemTime): TDateTime;
Преобразует системное время в datetime
function TimeStampToDateTime (const TimeStamp: TTimeStamp): TDateTime;
Преобразует метку времени в DateTime
function TimeStampToMSecs (const TimeStamp: TTimeStamp): comp;
Преобразует метку времени в количество миллисекунд
функция TimeToStr (Time: TDateTime) :;
Возвращает строковое представление времени
function TimeToStr (Time: TDateTime; const FormatSettings: TFormatSettings) :;
Возвращает строковое представление времени
функция Time: TDateTime;
Получить текущее время
Следующий пример иллюстрирует использование некоторых из вышеуказанных функций –
Program DatenTimeDemo; uses sysutils; var year, month, day, hr, min, sec, ms: Word; begin writeln ('Date and Time at the time of writing : ',DateTimeToStr(Now)); writeln('Today is ',LongDayNames[DayOfWeek(Date)]); writeln; writeln('Details of Date: '); DecodeDate(Date,year,month,day); writeln (Format ('Day: %d',[day])); writeln (Format ('Month: %d',[month])); writeln (Format ('Year: %d',[year])); writeln; writeln('Details of Time: '); DecodeTime(Time,hr, min, sec, ms); writeln (format('Hour: %d:',[hr])); writeln (format('Minutes: %d:',[min])); writeln (format('Seconds: %d:',[sec])); writeln (format('Milliseconds: %d:',[hr])); end.
Когда приведенный выше код был скомпилирован и выполнен, он дал следующий результат: