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 PRO #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 嗯 就用了这个方法 |