我正在用 c++ 编写一个 impala udf,当提供 yyyyMMdd 中的日期时,它会获取一年中的第几周。但似乎无法找到将 yyyyMMdd 转换为 C++ 中的一周的方法。在java中我可以日历,但是如何在c++中进行它。
TIA
您可以只使用std::mktime来自<ctime>. 例子:
std::tm date={};
date.tm_year=2014-1900;
date.tm_mon=9-1;
date.tm_mday=28;
std::mktime(&date);
Run Code Online (Sandbox Code Playgroud)
调用后,date.tm_wday 被调整(0=星期日)。date.tm_yday 也进行了调整。
要将周转入一年中,请使用:(date.tm_yday-date.tm_wday+7)/7
此计算对于第一个完整周返回 1(即,一年中有星期日的第一周,包括以星期日开始的年份中的 1 月 1 日);0 表示第一周的天数。
| 归档时间: |
|
| 查看次数: |
4713 次 |
| 最近记录: |