1.感觉挺复杂的啊 ,还要考虑闰年和每个月份的天数不同,
2.不想写了,烧脑袋,想做个伸手党~大家有现成的例子么~~
1
zyqf 2018-03-13 11:38:04 +08:00 via Android
用时间戳做减法
|
2
keximing250 OP @zyqf 不懂,可以具体点么~
|
3
Rufeer 2018-03-13 11:43:55 +08:00 via iPhone
自己写也就大一 c 语言的难度吧。。 可以换成时间戳 减去两星期 再换回来
|
4
nealwx 2018-03-13 11:54:30 +08:00
1. time 获取当前时间
2. 两个星期经过的描述数 3. 用转换 localtime 4. 再用 strftime 转换一下 |
5
youxiachai 2018-03-13 11:55:22 +08:00
我很好奇...c++ 没有日期操作库?
|
6
alqaz 2018-03-13 11:56:52 +08:00 via Android
boost ptime
|
7
shakespark 2018-03-13 12:24:07 +08:00
|
8
MeteorCat 2018-03-13 12:50:51 +08:00 via Android
获取时间戳,减去两周时间戳,如果是需要获取每周起始点,如星期一就多一步时间筛选操作,楼上给了很多例子了;对 C++来说,我感觉中文资料基本上很贫乏,需要自己去 bing 或者谷歌查询
|
9
keximing250 OP @nealwx 懂了~!
|
10
Tyanboot 2018-03-13 13:24:54 +08:00
#include <chrono>
typedef std::chrono::duration<int, std::ratio<3600 * 24 * 7>> weeks; int main() { auto now = std::chrono::system_clock::now(); auto two_weeks_ago = now - weeks(2); // decltype(tt) == time_t auto tt = std::chrono::system_clock::to_time_t(two_weeks_ago); } 这样就行了. c++11 提供了方便的 chrono 简化了时间的一些操作. |
11
keximing250 OP @Tyanboot 谢鞋了,以后用这个,这古董系统 不敢用 C++11 还是用时间戳了~
|
12
alqaz 2018-03-13 15:42:54 +08:00
boost date 提供了类似的操作
日期 using namespace boost::gregorian; date d = day_clock::local_day(); weeks w(-2); d -= w; 这个不需要 c++11 |
13
YMB 2018-03-13 17:40:00 +08:00
如果实在不行的话,用其他语言挂个 API 提供服务,这个适合其他设计。
但是 c++操作时间,可以找下库,c 语言应该有一些类似 pip、composer 之类的管理工具,没有的话应该有类似的网站。 |
14
qf19910623 2018-03-13 18:52:34 +08:00
@keximing250 无论如何,两个星期的时长是固定的,把当前时间戳减去这个时长,得到的时间戳再格式化一下就可以
|
15
HaoyangWei 2018-03-13 19:01:17 +08:00
记得 nginx 源码中有一段将时间戳转年月日时分秒的算法,比较有趣
可以把当前时间戳-2*7*86400 丢到这个算法里面拿到日期 |
16
keximing250 OP @qf19910623 嗯 就用了这个方法
|