【发布时间】:2012-07-10 08:59:18
【问题描述】:
如何在 C 语言的当前语言环境中确定哪一天是一周中的第一天。 在俄罗斯,星期一是第一天,但我的 mac 显示本地化日历的第一天错误。 所以我想知道我是否可以确定哪一天是当前语言环境中的第一天。谢谢。
anatoly@mb:/Users/anatoly$ cal
Июля 2012
вс пн вт ср чт пт сб
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
【问题讨论】:
-
看起来
cal本地化只是翻译日期和月份,而不是一周的第一天是星期一、星期日还是星期六。 -
看起来是这样,但你确定,没有办法确定哪一天是 ANCI C 中的第一天。我发布了 cal outpu 作为示例。
-
正如注释:
cal第一天显示错误,因为它使用了 MacOS 上似乎没有提供的_NL_TIME_FIRST_WEEKDAY方法。在 glibc 系统上,cal将在星期一开始。 -
据我所知,mac 根本不附带 glibc。它使用另一个 libc(不知道是哪个),并且标题中根本没有 _NL_TIME_FIRST_WEEKDAY,所以我最终得到了 #if !defined(GLIBC) return 1; #else return *nl_langinfo(_NL_TIME_FIRST_WEEKDAY); #endif