Bazaprogram.ru

Новости из мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Formatdatetime delphi пример

Formatdatetime delphi пример

Форматируемая строка (Formatting) может включать смесь обычных символов (которые передаются неизменными в строку результата), и символы форматирования данных. Форматирование лучше всего объясняется кодом примера.

Следующие (неазиатские) строки символа форматирования могут использоваться в форматируемой строке:

y = Год из 2-х последних цифр
yy = Год из 2-х последних цифр
yyyy = Год из 4-х цифр
m = Номер месяца без 0
mm = Номер месяца как 2 цифры
mmm = Месяц используя ShortDayNames (Янв)
mmmm = Месяц используя LongDayNames (Январь)
d = Число без 0
dd = Число как 2 цифры
ddd = Число используя ShortDayNames (Воск)
dddd = Число используя LongDayNames (Воскресенье)
ddddd = Число в ShortDateFormat
dddddd = Число в LongDateFormat

c = Используя ShortDateFormat + LongTimeFormat
h = Час без 0
hh = Час как 2 цифры
n = Минуты без 0
nn = Минуты как 2 цифры
s = Секунды без 0
ss = Секунды как 2 цифры
z = Миллисекунды без 0
zzz = Миллисекунды как 2 цифры
t = Используя ShortTimeFormat
tt = Используя LongTimeFormat

am/pm = Используется после h : выдаёт 12 часов + am/pm
a/p = Используется после h : выдаёт 12 часов + a/p
ampm = Как a/p но TimeAMString,TimePMString
/ = Заменяется значением DateSeparator
: = Заменяется значением TimeSeparator

В дополнение к этому форматированию, различные из вышеупомянутых вариантов затрагиваются следующими переменными, с их значением по значением по умолчанию:

DateSeparator = /
TimeSeparator = :
ShortDateFormat = dd/mm/yyyy
LongDateFormat = dd mmm yyyy
TimeAMString = AM
TimePMString = PM
LongTimeFormat = hh:mm:ss
ShortMonthNames = Янв Фев .
LongMonthNames = Январь, Февраль .
ShortDayNames = Воск, Пон .
LongDayNames = Воскресенье, Понедельник .
TwoDigitYearCenturyWindow = 50

Версия 2 этой функции — для использования в пределах потоков. Вы должны заполнить запись FormatSettings перед вызовом запроса. Она берёт местную копию глобальной переменной, форматирующей переменные, которые делают подпрограмму потоко-безопасной.Похожие команды

DateSeparator Символ используемый для разделения полей отображаемой даты

DateTimeToStr Конвертирует значение даты и времени TDateTime в строку

DateTimeToString Огромные возможности форматирования даты в строку

LongDateFormat Переводит длинную версию даты в строковый формат

LongDayNames Массив названий дней недели, начинается с 1 = Воскресенье

LongMonthNames Массив названий месяцев, начинается с 1 = Январь

LongTimeFormat Длинная версия времени в строковом формате

ShortDateFormat Компактная версия даты в строковом формате

ShortDayNames Массив названий дней недели, начиная с 1 = Воскресенье

ShortMonthNames Массив названий дней месяца, начиная с 1 = Январь

ShortTimeFormat Короткая версия времени в строковый формат

StrToDateTime Конвертирует строку с датой и временем в значение типа TDateTime

TimeAMString Определяет значение AM в процедуре DateTimeToString

TimePMString Определяет значение PM в процедуре DateTimeToString

TimeSeparator Символ, используемый для разделения полей времени

TwoDigitYearCenturyWindow Устанавливает порог столетия для преобразований строки года из 2 цифр

Formatdatetime delphi пример

Привет всем!
Следующий трабл:
Делаю —
S := FormatDateTime(LongDateFormat, Date);
В итоге в S получается что-то вроде: «9 Июнь 2003»

А в настройках системы (Языки и стандарты) на вкладке дата пример следующий: 9 Июн я 2003.
Т. е. месяц склоняется.

Как сделать так, чтобы дата писалась также как в системе?


AbrosimovA ( 2003-06-09 11:29 ) [1]

Я делаю так, но, возможно, есть более изящный способ.

var
month: array[1..12] of string;
begin
month[1] := «января»;
month[2] := «февраля»;
month[3] := «марта»;
month[4] := «апреля»;
month[5] := «мая»;
month[6] := «июня»;
month[7] := «июля»;
month[8] := «августа»;
month[9] := «сентября»;
month[10] := «октября»;
month[11] := «ноября»;
month[12] := «декабря»;
S:=FormatDateTime(«d «+month[MonthOfTheYear(Date)]+» yyyy г.»,
Date);
end;


kull ( 2003-06-09 11:59 ) [2]

Дело в том что мне надо, чтоб писалось как в системе.
т. е. там может быль месяц текстом или числом, год четырех- или двухзначный и т.д. Вообщем, чтоб написание даты совпадало с системным.


AbrosimovA ( 2003-06-09 12:27 ) [3]

Ты должен сам выбрать в каком виде хочешь получить дату. Вот несколько примеров:

1) FormatDateTime(«d.mm.yyyy»,Date);//Например, 1.01.2003
2) FormatDateTime(«dd.mm.yy»,Date);//Например, 1.01.03
3) FormatDateTime(«d «+month[MonthOfTheYear(Date)]+» yyyy г.»,
Date);//Например, 1 января 2003 г.

и т.д. Всё зависит от строки форматирования(в одинарных кавычках). Почитай в Help»e по FormatDateTime


ladybird ( 2003-06-09 12:30 ) [4]

function DateInRussian(DT : TDateTime) : string;
var
TempSysTime: TSystemTime;
FineDate: array[0..32] of Char;
begin
DateTimeToSystemTime(DT,TempSysTime); //


kull ( 2003-06-09 12:37 ) [5]

А нет ли универсальной функции?
Может меня не поняли, но не я задаю формат даты, а пользователь, который задает этот формат сам как пожелает. При этом он может захотеть месяц строкой или числом.


icWasya ( 2003-06-09 12:41 ) [6]

в Unit SysUtils в интерфейсе лежит массив

LongMonthNames[1] := «января»;
LongMonthNames[2] := «февраля»;
LongMonthNames[3] := «марта»;
LongMonthNames[4] := «апреля»;
LongMonthNames[5] := «мая»;
LongMonthNames[6] := «июня»;
LongMonthNames[7] := «июля»;
LongMonthNames[8] := «августа»;
LongMonthNames[9] := «сентября»;
LongMonthNames[10] := «октября»;
LongMonthNames[11] := «ноября»;
LongMonthNames[12] := «декабря»;


han_malign ( 2003-06-09 12:52 ) [7]

смотри ladybird © (09.06.03 12:30)
.
GetDateFormat(LOCALE_USER_DEFAULT,// locale for which date is to be formatted
DATE_USE_ALT_CALENDAR, // flags specifying function options
@TempSysTime, // date to be formatted
nil, // date format string
@FineDate, // buffer for storing formatted string
32 // size of buffer
);
и поиграй со вторым флажком
LOCALE_NOUSEROVERRIDE If set, the function formats the string using the system default date format for the specified locale. If not set, the function formats the string using any user overrides to the locale»s default date format.

DATE_SHORTDATE Use the short date format. This is the default. Cannot be used with DATE_LONGDATE.

DATE_LONGDATE Use the long date format. Cannot be used with DATE_SHORTDATE.

DATE_USE_ALT_CALENDAR Use the alternate calendar, if one exists, to format the date string. If this flag is set, the function uses the default format for that alternate calendar, rather than using any user overrides. The user overrides will be used only in the event that there is no default format for the specified alternate calendar.


Song ( 2003-06-09 12:56 ) [8]

2AbrosimovA (09.06.03 11:29)
2icWasya © (09.06.03 12:41)

>>сделай так
Не стоит. Это константы, и они уже определены в системы под текущую SYS_LOCALE


kull ( 2003-06-09 16:50 ) [9]

Спасибо!
функция GetDateFormat помогла.

Функции и процедуры Delphi. Справочник.

Функция FormatDateTime(
const Format: string;
DateTime: TDateTime ): string;

Описание
Функция преобразовывает значение даты и времени типа TDateTime в строку заданного формата. Исходное значение передается в параметре DateTime. Формат результирующей строки определяется параметром Format, который использует следующие элементы форматирования:

ЭлементОписание
cДата и время. Для значения даты используется формат определенный глобальной переменной ShortDateFormat, а для значения времени, формат определенный глобальной переменной LongTimeFormat. Если значение DateTime не содержит дробной части, то время не отображается
dДень без нуля впереди (1-31).
ddДень с нулем впереди (01-31).
dddСокращенное название дня недели (‘вс’, . ‘сб’). Строковые значения определяются глобальной переменной ShortDayNames.
ddddПолное название дня недели (‘Воскресенье’, . ‘Суббота’). Строковые значения определяются глобальной переменной LongDayNames.
dddddДата. Формат определяется глобальной переменной ShortDateFormat.
ddddddДата. Формат определяется глобальной переменной LongDateFormat.
mМесяц без нуля впереди (1-12).
Если данный символ следует за h или hh, то отображается не месяц, а минуты.
mmМесяц с нулем впереди (01-12).
Если данный символ следует за h или hh, то отображается не месяц, а минуты.
mmmСокращенное название месяца (янв, . дек). Строковые значения определяются глобальной переменной ShortMonthNames.
mmmmПолное название месяца (‘Январь’ — ‘Декабрь’). Строковые значения определяются глобальной переменной LongMonthNames.
yyГод двумя цифрами (00-99).
yyyyГод четырьмя цифрами (0000-9999).
hЧас без нуля впереди (0-23).
hhЧас с нулем впереди (00-23).
nМинуты без нуля впереди (0-59).
nnМинуты с нулем впереди (00-59).
sСекунды без нуля впереди (0-59).
ssСекунды с нулем впереди (00-59).
tВремя. Формат определяется глобальной переменной ShortTimeFormat.
ttВремя. Формат определяется глобальной переменной LongTimeFormat.
am/pmВыводит ‘am’ для любого часа до полудня, и ‘pm’ для любого часа после полудня. Обозначения ‘am/pm’ могут быть указаны в верхнем, нижнем и в смешанном регистре. Регистр символов результирующей строки будет соответствовать регистру символов строки формата.
a/pВыводит ‘a’ для любого часа до полудня, и ‘p’ для любого часа после полудня. Символы ‘a/p’ могут быть указаны в верхнем, нижнем и в смешанном регистре. Регистр символов результирующей строки будет соответствовать регистру символов строки формата.
ampmВыводит значение глобальной переменной TimeAMString для любого часа до полудня, и значение глобальной переменной TimePMString для любого часа после полудня.
/Разделитель полей даты. Результирующий символ разделителя определяется глобальной переменной DateSeparator.
:Разделитель полей времени. Символ разделителя определяется глобальной переменной TimeSeparator.
‘xx’ «xx»Символы, заключенные в двойные или одиночные кавычки, не форматируются и выводятся один к одному, как есть.

Символы форматирования могут быть указаны как в верхнем, так и в нижнем регистре. Если в параметре Format определена пустая строка, то выполняется форматирование, аналогичное формату при использовании значения строки форматирования ‘с’.

Пример
var
S: string;
begin
S:= FormatDateTime( ‘Сегодня dddd dd mmm yyyy г.’, Date);
MessageDlg( S, mtInformation, [mbOk], 0);
end;

Formatdatetime delphi пример



Стандартный тип дата-время — TDateTime, определенный в модуле System, представляет собой вещественное число типа Double, целая часть которого задает число дней (в том числе и отрицательное), прошедших с 30 декабря 1899 г., а дробная часть — прошедшую долю текущего дня. Так, 35065.75 дает 1 января 1996 г., 18.00. Следует иметь в виду, что символьное представление даты-времени определяется региональной установкой Windows. Здесь под региональной установкой понимается следующее. В разных странах даты, время, а также вещественные числа записываются по-разному. Например, в одних странах в вещественных десятичных числах дробная часть отделяется от целой точкой, а в других — запятой (так, кстати, обозначаются десятичные числа и в нашей стране, однако пользоваться такой записью в тексте самой программы, написанной на Object Pascal, нельзя). По-разному записываются дата и время. Windows позволяет привести символьное представление таких параметров в соответствие с принятыми в данной стране правилами. Delphi может использовать эти установки для соответствующего представления таких параметров. Так, для России следует вводить информацию о дате и времени в виде dd.MM.yy H:mm:ss, где dd — день месяца; ММ — месяц; уу — год; Н — часы; mm — минуты; ss — секунды.

При задании значения даты-времени следует обратить внимание не только на сами значения, но и на знаки препинания. Несущественные части даты-времеи (например, секунды, минуты, часы) можно справа отбросить. В этом случае считается, что соответствующая часть равна нулю. Если в дате-времени отброшено еще и значение года, считается, что имеется в виду текущий год. Обычно тип дата-время используется в параметрах вариантного типа как один из допустимых вариантов, но может использоваться и самостоятельно для фиксации информации о времени.

Примечание. Следует иметь в виду, что при записи года двумя последними цифрами фактический год зависит от текущего года и глобальной переменной заданной в Delphi — TwoDigitYearCenturyWindow. По умолчанию эта переменная имеет значение, равное 50, что означает, что в конце этого столетия и начале следующего задаваемые двумя цифрами годы будут относиться к XX в., если число несколько больше 50, и к XXI в., если число несколько меньше 50.

В модуле SysUtils определен ряд стандартных функции работы с параметрами типа даты-времени.

  • Time — текущее время. Функция возвращает текущее значение времени в формате TTime.
  • Date — текущая дата. Функция возвращает текущее значение даты в формате TDate.
  • Now — текущая дата и время. Функция возвращает текущее значение даты и времени в формате TDateTime.
  • DateTimeToStr (DateTime) — символьное представление даты и времени. Функция формирует для параметра DateTime типа TDateTime символьное представление даты и времени с учетом региональной установки Windows и возвращает полученную строку в качестве результата своей работы.
  • DateTimeToString (Result, Format, DateTime) — сформатированное символьное представление даты и времени. Процедура формирует символьное представление параметра DateTime типа TDateTime с учетом формата, заданного строкой Format, и помещает результат в строку Result.
  • DateToStr (Date) — символьное представление даты. Функция формирует для параметра Date типа TDateTime или TDate символьное представление даты с учетом региональной установки Windows и возвращает полученную строку в качестве результата своей работы.
  • DayOfWeek (Date) — день недели. Функция возвращает день недели заданной даты Date типа TDateTime или TDate в виде числа от 1 до 7, причем нумерация начинается с воскресенья.
  • TimeToStr (Time) — символьное представление времени. Функция формирует для параметра Time типа TDateTime или TTime символьное представление времени с учетом региональной установки Windows и возвращает полученную строку в качестве результата своей работы.
  • DecodeDate (Date, Year, Month, Day) — выделение в дате года, месяца, дня. Процедура выделяет из параметра Date типа TDateTime или TDate год, месяц, день и помещает их соответственно в параметры Year, Month и Day типа Word.
  • DecodeTime (Date, Hour, Min, Sec, MSec) — выделение во времени часа, минуты, секунды и числа миллисекунд. Процедура выделяет из параметра Date типа TDateTime или TTime час, минуту, секунду и число миллисекунд и помещает их соответственно в параметры Hour, Min, Sec и MSec типа Word.
  • EncodeDate (Year, Month, Day) — формирование даты из компонент. Функция формирует из заданного года, месяца и дня (заданных в параметрах Year, Month, Day) комплексный параметр типа TDateTime и возвращает его как результат работы.
  • EncodeTime (Hour, Min, Sec, MSec) — формирование времени из компонент. Функция формирует из заданных часа, минуты, секунды и числа миллисекунд (заданных в параметрах Hour, Min, Sec, MSec) комплексный параметр типа TDateTime и возвращает его как результат работы.
  • FormatDateTime (Format, DateTime) — сформатированное символьное представление даты и времени. Функция формирует символьное представление параметра DateTime типа TDateTime с учетом формата, заданного строкой Format, и возвращает полученную строку как результат своей работы.
  • StrToDate (S) — преобразование символьного представления даты в тип TDateTime. Функция преобразовывает символьное представление даты, находящееся в строке S, в формат TDateTime или TDate и возвращает полученную величину как результат своей работы. Дата должна быть задана в соответствии с региональной установкой Windows.
  • StrToTime (S) — преобразование символьного представления времени в тип TDateTime. Функция преобразовывает символьное представление времени, находящееся в строке S, в формат TDateTime или TTime и возвращает полученную величину как результат своей работы. Время должно быть задано в соответствии с региональной установкой Windows.
  • StrToDateTime (S) — преобразование символьного представления даты и времени в тип TDateTime. Функция преобразовывает символьное представление даты и времени, находящееся в строке S, в формат TDateTime и возвращает полученную величину как результат своей работы. Дата и время должны быть заданы в соответствии с региональной установкой Windows.

Тепеть разберем некоторые функции на примерах.

DateTimeToString

DateTimeToStr

DateToStr

TimeToStr

А сейчас попробуем написать часы, применяя описанные выше процедуры и функции. С созданием цифровых часов не должно возникнуть никаких проблем, а вот с аналоговыми нужно повозиться. Но мы, как настоящие программисты, не боимся трудностей, и возьмемся за реализацию этой задачи. И первое, что мы сделаем при запуске программы, узнаем координаты центра часов и вычислим радиус.

Обновлять информацию о времени будем, используя таймер, и сделаем возможность запуска/остановки часов. Запускать и останавливать таймер будем следующей процедурой.

Таймер, через определенные интервалы времени, будет получать информацию о дате и времени, выводить ее, и вызывать процедуру рисования аналоговых часов.

А вот и сама процедура рисования аналоговых часов.

Из примера видно, что сделать часы, в том числе и аналоговые, не представляет из себя ничего сложного. Я думаю, не возникнет больших проблем при разборе данного примера.

Читать еще:  Xml css пример
Ссылка на основную публикацию
Adblock
detector