C++ C/C+中与地区相关的一年中的一周+;
我正在努力争取一年中的第二周。为此,我使用了C++ C/C+中与地区相关的一年中的一周+;,c++,c,C++,C,我正在努力争取一年中的第二周。为此,我使用了tm*\u CRTDECL localtime(const time\u t*\u time),但我没有得到预期的结果,这应该取决于语言环境。所以我在寻找解决方案和更多信息。我发现JAVACalendar.getInstance(Locale.GERMAN)中有API
tm*\u CRTDECL localtime(const time\u t*\u time)
,但我没有得到预期的结果,这应该取决于语言环境。所以我在寻找解决方案和更多信息。我发现JAVACalendar.getInstance(Locale.GERMAN)中有API所以我只是想知道c/c++中是否有这样的API,因为我没有找到(不确定)。如果没有,谁能给我一些时间指针,让一年中的一周取决于语言环境
我正在使用的代码
int MyClass::getCalendarWeek(time_t time, int * p_year)
{
// Get tm structure of time parameter
tm* pCurrentTm = localtime(&time);
// determine Thursday in that week
LONG offSet = 4 - pCurrentTm->tm_wday;
if (offSet >= 4) {
offSet = -3; // Sunday
}
time += offSet * 86400L;
pCurrentTm = localtime(&time);
if (p_year) {
*p_year = pCurrentTm->tm_year + 1900;// year of current calendar week
}
return (pCurrentTm->tm_yday + 7) / 7; // current calendar week
}
输出:
7月11日是第28周,在大多数地区,星期一是一周的第一天,但星期天是第29周,星期天是一周的第一天 请显示实际结果和期望的结果。好的,我将添加它Boost.DateTime提供了这样的功能:我不完全确定,但也许它可以帮助您。在德国,这一数字为4。一月总是在第一周。从这一点你可以计算出其他几周的时间。好的,知道了。不,C++标准中没有通用/本地化日历支持。这可能会有所帮助。