Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.026 c
14-84586
DMN
2003-06-09 01:35
2003.06.26
Дозвон?


14-84704
linker
2003-06-05 11:53
2003.06.26
как получить текст из DBGrid


3-84033
korvin
2003-06-01 07:30
2003.06.26
Вертикальное расположение текста в компонентах QReport`а


1-84312
oleg_SYS
2003-06-08 22:03
2003.06.26
Как конвейтировать TBitMap в TIcon?


1-84349
sergey2
2003-06-16 13:43
2003.06.26
Есть ли такая функция ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский