Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Получить дату без года в формате текущих региональных настроек [D6, Win95/98, WinME, NT4, Win2k, WinXP]


Страницы:   1 2 3

Falcon ©   (2007-10-21 01:25:00) 

Нужно из даты TDate получить текстовую дату без года в формате текущих региональных настроек. Например, региональные настройки под США, дата 31 декабря 2007, нужно преобразовать в string: '12/31'.

Возможно ламерский вопрос. Но с ходу не смог найти решение, не нашел ничего и в инете.


Falcon   (2007-10-21 22:47:00) [1]


> Конечно, свои проблемы сподручнее решать собс-ручно.

Согласен


>
> А по сути можно добавить, что никто не запрещает
> даже такой разделитель даты: {y}
> И нет нужды менять ShortDateFormat при наличии FormatDateTime.
>

Менять ShortDateFormat не буду :)


Leonid Troyanovsky   (2007-10-21 22:43:00) [2]


> Falcon   (21.10.07 22:34) [45]

> как решить свою проблему.

Конечно, свои проблемы сподручнее решать собс-ручно.

А по сути можно добавить, что никто не запрещает
даже такой разделитель даты: {y}
И нет нужды менять ShortDateFormat при наличии FormatDateTime.

--
Regards, LVT.


Falcon   (2007-10-21 22:34:00) [3]

Всем большое спасибо. Несколько лет не писал на Дельфи, многое подзабыл. Начиная с комментариев [2]-[4] стало понятно как решить свою проблему. По сути вот как:

StringReplace(ShortDateFormat, 'y', '', [rfReplaceAll])
;)

P.S. Не зря топик перенесли в этот раздел :)
P.P.S. Не бывает ничего не разрешимого.


Leonid Troyanovsky   (2007-10-21 22:13:00) [4]


> Плохиш ©   (21.10.07 21:32) [43]

> Бедные немцы/англичане/ и т.д., у них и словов-то таких
> нет :-))

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

Хотя, возможно, что именно так и поступают, скажем, индусы.

--
Regards, LVT.


Плохиш   (2007-10-21 21:32:00) [5]


> Leonid Troyanovsky ©   (21.10.07 14:06) [26]
>
> > DVM ©   (21.10.07 13:55) [22]
>
> > Должно быть: 21 октября 2007 г.
>
> LongMonthNames[10] := 'октября';

Бедные немцы/англичане/ и т.д., у них и словов-то таких нет :-))


Leonid Troyanovsky   (2007-10-21 15:36:00) [6]


> DVM ©   (21.10.07 15:04) [41]

> у вас анкета слетела, посмотрите.

- А у вас ус отклеился.
- Спасибо..

:)
fixed.

--
Regards, LVT.


DVM   (2007-10-21 15:04:00) [7]


> Leonid Troyanovsky ©

у вас анкета слетела, посмотрите.


Leonid Troyanovsky   (2007-10-21 14:55:00) [8]


> DVM ©   (21.10.07 14:37) [39]

> Это сложный вопрос, что хуже. Некоторые вещи все равно мы
> не переведем, как бы не старались на язык отличный от языка
> системы. Например, OpenDialog-и.

Tо, что будет легко - никто не обещал.
Не только потому, что борланды занимают пупоцентрическую позицию
(что им какие-то Росиия или Китай) или, скажем, у них ресурсов поменее, что у MS, но и потому, что это объективно сложно.

Но, в любом случае, было б желание, а сделать можно.

--
Regards, LVT.


DVM   (2007-10-21 14:37:00) [9]


> Вот и получаются так лоскутно локализованные шалтаи-болтаи,
>
> ведущие себя не одинаково в разных системах.

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


Leonid Troyanovsky   (2007-10-21 14:31:00) [10]


> DVM ©   (21.10.07 14:24) [33]

> А если неизвестно заранее какие языки встретятся программе
> в процессе ее работы? Чем делать лишнюю работу по локализации
> не проще ли воспользоваться тем, что уже есть в системе.

Вот и получаются так лоскутно локализованные шалтаи-болтаи,
ведущие себя не одинаково в разных системах.

Про MessageDlg тоже, кстати.

--
Regards, LVT.


Anatoly Podgoretsky   (2007-10-21 14:31:00) [11]

> DVM  (21.10.2007 14:30:36)  [36]

Вот что и хотел, то и получит - ничего


DVM   (2007-10-21 14:30:00) [12]


> korneley ©   (21.10.07 14:27) [35]

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


korneley   (2007-10-21 14:27:00) [13]

Так человеку и нужен "частный случай"... И все уже решено, и советы даны, о чем спорим-то?


Leonid Troyanovsky   (2007-10-21 14:25:00) [14]


> DVM ©   (21.10.07 14:14) [28]

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

Массива, IMHO, вполне хватит ;)
Да, и не обязательно менять что-то глобально,
есть еще и TFormatSettings.

--
Regards, LVT.


DVM   (2007-10-21 14:24:00) [15]


> Вот как раз в общем то и решаема, а не решаема, возможно,
>  в частных случаях.

В общем, к сведению, это значит для всех возможных ситуаций. Если есть ситуации, для которых задача не решаема, то она не решаема в общем случае, но имеет частные решения.


> Видимо, как описано в главе про интернациализацию и локализацию.

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

Та же песня про MessageBox и надписи на кнопках в MessageDlg


Anatoly Podgoretsky   (2007-10-21 14:20:00) [16]

> DVM  (21.10.2007 14:17:31)  [31]

Вот как раз в общем то и решаема, а не решаема, возможно, в частных случаях.


Leonid Troyanovsky   (2007-10-21 14:17:00) [17]


> DVM ©   (21.10.07 14:11) [27]

> И так для всех языков, даже для нас неизвестных делать будем?
>  Как?

Видимо, как описано в главе про интернациализацию и локализацию.
Чудес не бывает, придется и переводчиков нанимать ;)

--
Regards, LVT.


DVM   (2007-10-21 14:17:00) [18]


> Так что не старайся придумать форматы.

так я и не придумываю - говорю же задача не выполнима в общем случае.


Anatoly Podgoretsky   (2007-10-21 14:16:00) [19]

> DVM  (21.10.2007 14:11:27)  [27]

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


DVM   (2007-10-21 14:14:00) [20]


> LongMonthNames[10] := 'октября';

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


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо