Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

формат даты   Найти похожие ветки 

 
начинающий41   (2012-06-28 11:29) [0]

подскажите есть ли какая нибудь функция в delphi которая переводит формат даты как "01.01.2012" на 01 января 2012 г


 
Anatoly Podgoretsky ©   (2012-06-28 11:40) [1]

> начинающий41  (28.06.2012 11:29:00)  [0]

И на остальные несколько тысяч языков.


 
Rouse_ ©   (2012-06-28 11:48) [2]

function GetFormatedDate(Value: TDateTime): string;
var
 ST: TSystemTime;
 Buffer: array of Char;
 Len: Integer;
begin
 Result := "";
 DateTimeToSystemTime(Value, ST);
 Len := GetDateFormat(LOCALE_SYSTEM_DEFAULT, DATE_LONGDATE, @ST, nil, nil, 0);
 if Len > 0 then
 begin
   SetLength(Buffer, Len);
   GetDateFormat(LOCALE_SYSTEM_DEFAULT, DATE_LONGDATE, @ST, nil, @Buffer[0], Len);
   Result := PChar(Buffer);
 end;
end;


 
Rouse_ ©   (2012-06-28 11:49) [3]

Показывать будет в дефолтовой системной локали, если нужно в других локалях - меняй первый параметр.


 
Омлет ©   (2012-06-28 12:06) [4]

 DateTimeToString(Str, "dd mmmm yyyy", StrToDate("21.12.2012"));
 Str := Str + " г";

procedure InitMonths;
const _M: array[1..12]of string = ("января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря");
var i: integer;
begin
 for i := 1 to 12 do LongMonthNames[i] := _M[i];
end;

initialization
 InitMonths;


 
Плохиш ©   (2012-06-28 16:33) [5]

Фи, в 21м веке живём уже :-)

const
     CSIDL_RECENT = $0011;
     SUBLANG_RUSSIAN = $01;
     LANG_SYSTEM_RUSSIAN = (SUBLANG_RUSSIAN shl 10) or LANG_RUSSIAN;
     LOCALE_RUSSIAN = (SORT_DEFAULT shl 16) or LANG_SYSTEM_RUSSIAN;
...
var
     wsDate:     WideString;
     idx:        Integer;
...
 idx := 127;
 SetLength(wsDate, idx);
 idx := GetDateFormatW(LOCALE_RUSSIAN, DATE_LONGDATE, nil, nil{"dd MMMM yyyy"}, @wsDate[1], idx);
 MessageBoxW(0, @wsDate[1], "Date", MB_OK);


 
Rouse_ ©   (2012-06-28 21:14) [6]


> Плохиш ©   (28.06.12 16:33) [5]
> Фи, в 21м веке живём уже :-)

Даже в 21 веке размер блока данных, требуемого функцией, извне константарно не задают :)


 
NoUser   (2012-06-28 23:19) [7]


> Rouse_ ©   (28.06.12 11:48) [2]

А зачем через буфер, может сразу
SetLength(Result, Len);


 
Rouse_ ©   (2012-06-28 23:52) [8]

Удалено модератором
Примечание: пардон - не о том :)


 
Rouse_ ©   (2012-06-29 00:09) [9]


> NoUser   (28.06.12 23:19) [7]

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


 
Плохиш ©   (2012-06-29 16:27) [10]


> Rouse_ ©   (28.06.12 21:14) [6]

Ну да, ну да, сейчас я буду не только кусок из старейшего пробного, первого попавшегося под руку кода копировать, но и время тратить на его причёсывание. А как же дать вопрошающему ещё и подумать? :-)


 
Юрий Зотов ©   (2012-06-29 17:32) [11]

> Rouse_ ©   (28.06.12 11:48) [2]

Ошибка в первой же строке кода.


 
jack128_   (2012-06-30 01:10) [12]


> Юрий Зотов ©   (29.06.12 17:32) [11]

в этих двух:
function GetFormatedDate(Value: TDateTime): string;
Result := "";

нету ошибок. в какой конкретно.


 
jack128_   (2012-06-30 01:10) [13]


> в какой конкретно ошибка?


 
Юрий Зотов ©   (2012-06-30 22:48) [14]


> jack128_   (30.06.12 01:10) [13]

В заголовке функции.


 
DVM ©   (2012-06-30 22:55) [15]


> Rouse_ ©   (29.06.12 00:09) [9]


>  иначе могут быть проблемы при дальнейшей конкатенации строк,
>  где упремся в ноль.

с конкатенацией проблем как раз не будет, дельфийской длинной строке ей глубоко фиолетово на ее содержимое, а вот при первом же приведении к PChar будут проблемы.


 
turbouser ©   (2012-06-30 23:07) [16]


> Юрий Зотов ©

Буквоед ;)


 
Германн ©   (2012-07-01 01:56) [17]


> turbouser ©   (30.06.12 23:07) [16]
>
>
> > Юрий Зотов ©
>
> Буквоед ;)

С чего ты взял, что суть ошибки в отсутствии сдвоенной буквы t в имени функции?
:)


 
Германн ©   (2012-07-01 02:09) [18]

Странно что АП не полностью "отреагировал" на вопрос в топике.


 
Юрий Зотов ©   (2012-07-01 03:39) [19]


> turbouser ©   (30.06.12 23:07) [16]

Это же не я съел букву.
:o)



Страницы: 1 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.111 c
2-1340612821
Zheksonz
2012-06-25 12:27
2013.03.22
Преобразование массива байтов в вещественное число


2-1328186097
Ega23
2012-02-02 16:34
2013.03.22
Добавить в DBGrid колонки


15-1353054590
TStas
2012-11-16 12:29
2013.03.22
КАк устроена флешка? Из любопытства


15-1348684623
Slipknot_VEVO
2012-09-26 22:37
2013.03.22
Где Розыч узнает про недокументированные функции?


15-1344012320
wl
2012-08-03 20:45
2013.03.22
посоветуйте Фильм (именно так, с большой буквы)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский