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

Вниз

Дни недели   Найти похожие ветки 

 
spoyler ©   (2004-08-21 21:51) [0]

Возник интересный вопрос. В программе нужно получить список дней недели. С определением по дате проблем нет, зато возникает уже другой вопрос.
Вроде как в стандартных средствах Delphi вроде TMonthCalendar день недели использует уже настройки локализации Windows, то есть день недели пишется уе на локальном языке.
Как же определить день недели через API без использования массивов их наименованиями? И вдогонку: отобразить формат даты по выбранному в ОС формату?


 
QuasiLamo ©   (2004-08-21 21:55) [1]

Dayofweek не подходит разве?


 
QuasiLamo ©   (2004-08-21 21:55) [2]


>  вдогонку: отобразить формат даты по выбранному в ОС
> формату?

это хранится в реестре где то в виде строки


 
spoyler ©   (2004-08-22 21:49) [3]

Dayofweek возвращает индекс в массиве дней недели, заполнять его надо ручками. Или я не прав?
<-- -->
DayOfWeek returns the day of the week of the specified date as an integer between 1 and 7, where Sunday is the first day of the week and Saturday is the seventh.
<-- -->
А мне нужно как раз по этому индексу получить стринг с днем недели.


 
spoyler ©   (2004-08-22 21:51) [4]

Если есть в реестре, значит, есть функции API, позволяющие все это получить.
З.Ы. Regedit по поиску ничего не выдает. ;(


 
Юрий Зотов ©   (2004-08-22 22:02) [5]

FormatDateTime
или
DateTimeToSystemTime + GetDateFormat

Можно получить что угодно, включая и день недели в стринговом виде.


 
GuAV ©   (2004-08-23 00:56) [6]

GetLocaleInfo
LOCALE_SABBREVDAYNAME1, ...

PS: Ctrl+Click - rulezz.


 
QuasiLamo ©   (2004-08-26 21:45) [7]

HKEY_USERS\.DEFAULT\Control Panel\International
sShortDate


 
_sulent ©   (2004-08-27 08:14) [8]

 
 R.RootKey:=HKEY_CURRENT_USER;
 If R.OpenKey("\Control Panel\International", false) then
  Begin
   sDecimal:=R.ReadString("sDecimal");
   if sDecimal<>"." then
    begin
      if MessageDlg("Warning! Value "Decimal separator" in registry not equal "." ! "+
                       "Current value: ""+sDecimal+"". Exchange this key?", mtError,[mbYes, mbNo],0)=mrYes then
        R.WriteString("sDecimal", ".");
    end;

   IF R.ValueExists("sShortDate") then
    Begin
     sShortDate:=R.ReadString("sShortDate");
     if sShortDate<>"dd.MM.yy" then
      begin
        if MessageDlg("Warning! Value "Short date format" in registry not equal "dd.MM.yy" ! "+
                         "Current value: ""+sShortDate+"". Exchange this key?", mtError,[mbYes, mbNo],0)=mrYes then
         begin
          R.WriteString("sShortDate", "dd.MM.yy");
          R.CloseKey;
         end;
      end;
    end;
  end;

 R.Free;

что-то типа того


 
Woolen ©   (2004-08-30 14:04) [9]


> Вроде как в стандартных средствах Delphi вроде TMonthCalendar
> день недели использует уже настройки локализации Windows,
> то есть день недели пишется уе на локальном языке.
> Как же определить день недели через API без использования
> массивов их наименованиями?


> А мне нужно как раз по этому индексу получить стринг с днем
> недели.

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



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

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

Наверх




Память: 0.49 MB
Время: 0.053 c
4-1093524576
SH@RK
2004-08-26 16:49
2004.10.03
Как узнать Caption активного окна, а также имя его exe ка ?


14-1095244960
Delphin
2004-09-15 14:42
2004.10.03
Программа, для записи происходящего на экране


4-1093715324
Valdemar
2004-08-28 21:48
2004.10.03
Защита CD от копирования


4-1093185630
Graf
2004-08-22 18:40
2004.10.03
Получение ресурса из внешнего EXE или DLL файла


14-1095250698
Fredy314
2004-09-15 16:18
2004.10.03
Купил себе TV tuner