这是一个小示例程序first_weekday.c,它获取一周的第一天。此外,还会打印所用变量的值和大小。
GetLocalInfoEx() 将一周的第一天存储在变量 week_1stday 中。
但是,在 Windows 上,我们有:0:Monday, ... 6:Sunday(请参阅:LOCALE_IFIRSTDAYOFWEEK)。
因此这里包含一个计算,以便得到0:Sunday, 1:Monday, ...
然后将一周第一天的数字存储在first_weekday
#include <stdio.h>
#include <windows.h>
int main(
)
{
int ret;
int first_weekday;
DWORD week_1stday;
ret = GetLocaleInfoEx(LOCALE_NAME_USER_DEFAULT,
LOCALE_IFIRSTDAYOFWEEK | LOCALE_RETURN_NUMBER,
(LPWSTR) & week_1stday,
sizeof(week_1stday) / sizeof(WCHAR));
/* 0:Monday, ..., 6:Sunday. */
/* We need 1 for Monday, 0 for Sunday. */
first_weekday = (week_1stday + 1) % 7;
printf("ret = %d\n", ret);
printf("sizeof(ret) = %Iu\n", sizeof(ret));
printf("sizeof(week_1stday) = %Iu\n", sizeof(week_1stday));
printf("sizeof(WCHAR) = %Iu\n", sizeof(WCHAR));
printf("week_1stday = %lu\n", week_1stday);
printf("first_weekday = %d\n", first_weekday);
return 0;
}
另请参阅:
GetLocaleInfoEx function
LOCALE_IFIRSTDAYOFWEEK