Форум: "Основная";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
ВнизFormatDateTime... Найти похожие ветки
← →
kull (2003-06-09 11:09) [0]Привет всем!
Следующий трабл:
Делаю -
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
сделай так
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 помогла.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.034 c