3

現在のロケールで週の開始日を特定するにはどうすればよいですか? おそらく<time.h>ヘッダーを介して、Cでこれが必要です。ありがとう。

4

1 に答える 1

0

ロケールはその情報を持っていません。これは、「週の最初の日」の意味は、コンピューターではなく、アプリケーション(アプリケーション)に依存するためです。

私が働いている場所では、月曜日を週の最初の日として扱うアプリケーションもあれば、日曜日を週の最初の日として扱うアプリケーションもあります。ここの壁掛けカレンダーはすべて日曜日を初日として使用します。製造カレンダーは通常月曜日を使用します。


Windowsでは、GetLocaleInfo()を使用しますが、ロケールは実行時に変更できます。WindowsAPIを介して設定できます。GetLocaleInfoEx()には、より詳細なドキュメントがあります。SetLocaleInfo()は、他のロケール設定とは関係なく、週の最初の曜日を変更できるようです。

localeLinuxでは、ユーティリティで週の最初の日を識別するための規定があります。(man 5 locale、またはロケールドキュメントオンライン。「LC_TIME」を検索してください。)POSIX.2、ISO /IEC14652に準拠していると文書化されています。

$ locale day
Sunday;Monday;Tuesday;Wednesday;Thursday;Friday;Saturday

私のロケールの最初の曜日は日曜日です。

システムコールやライブラリコールをまだ見つけられませんでした。ソースコードが手元にありません。

于 2012-07-05T21:54:51.347 に答える