16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"RE:漢字の曜日を得る"
この発言は #00388 凛 さんの漢字の曜日を得る に対するコメントです
>漢字の曜日を得る関数です。
Windowsの持っている「各国語対応機能」を使うと、
Windows日本語版ならば漢字名(月・火・水...)
Windows英語版ならば英語名?(Mon,Tue,Wed...)等の文字列を
取得できます。
function GetLocaleString(lctp: LCTYPE): String;
var
j: Integer;
s: String;
begin
j := GetLocaleInfo(GetSystemDefaultLCID, lctp, PChar(nil), 0);
SetLength(s, j);
GetLocaleInfo(GetSystemDefaultLCID, lctp, PChar(s), j);
SetLength(s, j-1);
Result := s;
end;
Windows日本語版ならば、
GetLocaleString(LOCALE_SDAYNAME1) → '月曜日'
GetLocaleString(LOCALE_SDAYNAME2) → '火曜日'
GetLocaleString(LOCALE_SDAYNAME3) → '水曜日'
GetLocaleString(LOCALE_SDAYNAME4) → '木曜日'
GetLocaleString(LOCALE_SDAYNAME5) → '金曜日'
GetLocaleString(LOCALE_SDAYNAME6) → '土曜日'
GetLocaleString(LOCALE_SDAYNAME7) → '日曜日'
GetLocaleString(LOCALE_SABBREVDAYNAME1) → '月'
GetLocaleString(LOCALE_SABBREVDAYNAME2) → '火'
GetLocaleString(LOCALE_SABBREVDAYNAME3) → '水'
GetLocaleString(LOCALE_SABBREVDAYNAME4) → '木'
GetLocaleString(LOCALE_SABBREVDAYNAME5) → '金'
GetLocaleString(LOCALE_SABBREVDAYNAME6) → '土'
GetLocaleString(LOCALE_SABBREVDAYNAME7) → '日'
を返します。
同様に、LOCALE_SMONTHNAME1〜LOCALE_SMONTHNAME12
を指定すれば、'1月'〜'12月' という月の名前を取得できます。
LOCALE_SABBREVMONTHNAME1〜LOCALE_SABBREVMONTHNAME12
で月の名前の省略形を取得できますが、日本語版では
'1'〜'12'という数字が返るだけなので面白くないですね。(^^;
#試してないけど、英語版のWindowsで上記の関数をコールすれば
#'Monday'など英語の曜日が取得できるはずです。たぶん。
Win95a + Delphi3.1で動作を確認しました。
Original document by Satobe 氏 ID:(JCG00336)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|