首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
华为云
V2EX  ›  C/C++/Obj-C

c++ 如何获取系统时间的前两个星期的时间

  •  
  •   keximing250 · 162 天前 · 941 次点击
    这是一个创建于 162 天前的主题,其中的信息可能已经有所发展或是发生改变。

    1.感觉挺复杂的啊 ,还要考虑闰年和每个月份的天数不同,

    2.不想写了,烧脑袋,想做个伸手党~大家有现成的例子么~~

    16 回复  |  直到 2018-03-14 09:31:26 +08:00
        1
    zyqf   162 天前 via Android
    用时间戳做减法
        2
    keximing250   162 天前
    @zyqf 不懂,可以具体点么~
        3
    Rufeer   162 天前 via iPhone
    自己写也就大一 c 语言的难度吧。。 可以换成时间戳 减去两星期 再换回来
        4
    nealwx   162 天前
    1. time 获取当前时间
    2. 两个星期经过的描述数
    3. 用转换 localtime
    4. 再用 strftime 转换一下
        5
    youxiachai   162 天前
    我很好奇...c++ 没有日期操作库?
        6
    alqaz   162 天前 via Android
    boost ptime
        8
    MeteorCat   162 天前 via Android
    获取时间戳,减去两周时间戳,如果是需要获取每周起始点,如星期一就多一步时间筛选操作,楼上给了很多例子了;对 C++来说,我感觉中文资料基本上很贫乏,需要自己去 bing 或者谷歌查询
        9
    keximing250   162 天前
    @nealwx 懂了~!
        10
    Tyanboot   162 天前
    #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   162 天前
    @Tyanboot 谢鞋了,以后用这个,这古董系统 不敢用 C++11 还是用时间戳了~
        12
    alqaz   161 天前
    boost date 提供了类似的操作
    日期
    using namespace boost::gregorian;
    date d = day_clock::local_day();
    weeks w(-2);
    d -= w;
    这个不需要 c++11
        13
    YMB   161 天前
    如果实在不行的话,用其他语言挂个 API 提供服务,这个适合其他设计。
    但是 c++操作时间,可以找下库,c 语言应该有一些类似 pip、composer 之类的管理工具,没有的话应该有类似的网站。
        14
    qf19910623   161 天前
    @keximing250 无论如何,两个星期的时长是固定的,把当前时间戳减去这个时长,得到的时间戳再格式化一下就可以
        15
    HaoyangWei   161 天前
    记得 nginx 源码中有一段将时间戳转年月日时分秒的算法,比较有趣
    可以把当前时间戳-2*7*86400 丢到这个算法里面拿到日期
        16
    keximing250   161 天前
    @qf19910623 嗯 就用了这个方法
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3388 人在线   最高记录 3762   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 21ms · UTC 06:18 · PVG 14:18 · LAX 23:18 · JFK 02:18
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1