免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5798 | 回复: 11

[C++] 给日期加一个月 怎么实现 [复制链接]

论坛徽章:
0
发表于 2013-10-15 11:14 |显示全部楼层

我是想 求得 这个月发生的事情  比如 起始日期是 20081000  结束 是 20081100


也就是 [20081000  ,20081100]



但是怎么 根据 起始时间求得下一个月 谢谢。

论坛徽章:
3
双鱼座
日期:2013-08-17 16:21:25CU十二周年纪念徽章
日期:2013-10-24 15:41:34射手座
日期:2014-08-10 13:48:32
发表于 2013-10-15 11:19 |显示全部楼层
什么意思,2008年10月0号是什么意思

论坛徽章:
0
发表于 2013-10-15 11:38 |显示全部楼层
回复 2# lcyjlu


    是   00 表示 是 第一天

论坛徽章:
0
发表于 2013-10-15 11:45 |显示全部楼层
回复 3# hu_lu_wa


   自己 写 也可以 就是想知道有没有 简单点的



我是这样想的   取子串    然后   atoi     

  月份 ++   

if  月份 ==12  
{
     year ++;
    月份=00;
}

这样 对不 。


  

论坛徽章:
323
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
发表于 2013-10-15 11:48 |显示全部楼层
gmtime、mktime

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
发表于 2013-10-15 11:48 |显示全部楼层
本帖最后由 yulihua49 于 2013-10-15 11:55 编辑
hu_lu_wa 发表于 2013-10-15 11:14
我是想 求得 这个月发生的事情  比如 起始日期是 20081000  结束 是 20081100

使用整数表示既可。
以某年某月为原点。到指定月份的月数,+1即可。
表示时用一个格式转换函数。

月数 -> 年.月();
年.月 -> 月数();
日期没什么用,就别写什么00啦,免得误解。

论坛徽章:
0
发表于 2013-10-15 11:50 |显示全部楼层
回复 5# hellioncu


    不可以 吧  一个月的毫秒不 固定啊    28天的  29天 的 30天的 31天的

论坛徽章:
17
处女座
日期:2013-08-27 09:59:352015亚冠之柏太阳神
日期:2015-07-30 10:16:402015亚冠之萨济拖拉机
日期:2015-07-29 18:58:182015年亚洲杯之巴勒斯坦
日期:2015-03-06 17:38:17摩羯座
日期:2014-12-11 21:31:34戌狗
日期:2014-07-20 20:57:32子鼠
日期:2014-05-15 16:25:21亥猪
日期:2014-02-11 17:32:05丑牛
日期:2014-01-20 15:45:51丑牛
日期:2013-10-22 11:12:56双子座
日期:2013-10-18 16:28:17白羊座
日期:2013-10-18 10:50:45
发表于 2013-10-15 14:10 |显示全部楼层
回复 1# hu_lu_wa

用boost
  1.    
  2.   /* Simple program that uses the gregorian calendar to progress by exactly
  3.    * one month, irregardless of how many days are in that month.
  4.    *
  5.    * This method can be used as an alternative to iterators
  6.    */

  7.   #include "boost/date_time/gregorian/gregorian.hpp"
  8.   #include <iostream>

  9.   int
  10.   main()
  11.   {

  12.     using namespace boost::gregorian;

  13.     date d = day_clock::local_day();
  14.     add_month mf(1);
  15.     date d2 = d + mf.get_offset(d);
  16.     std::cout << "Today is: " << to_simple_string(d) << ".\n"
  17.       << "One month from today will be: " << to_simple_string(d2)
  18.       << std::endl;

  19.     return 0;
  20.   }
复制代码
http://www.boost.org/doc/libs/1_33_1/doc/html/date_time/examples.html#date_time.examples.month_add

论坛徽章:
7
天蝎座
日期:2013-09-28 10:45:42双子座
日期:2013-10-16 16:27:09射手座
日期:2013-10-23 10:21:32处女座
日期:2014-09-17 16:44:332015年亚洲杯之巴林
日期:2015-04-09 17:28:01冥斗士
日期:2015-11-26 16:19:0015-16赛季CBA联赛之山东
日期:2018-03-02 23:59:31
发表于 2013-10-15 22:06 |显示全部楼层
myworkstation 发表于 2013-10-15 14:10
回复 1# hu_lu_wa

用boosthttp://www.boost.org/doc/libs/1_ ... me/examples.html#da ...


请问
c++中的endl,与'\n'有什么区别?

endl强制刷新缓冲区,而IO函数如果是行缓冲,遇到'\n'也会刷新缓冲区。

cout << "hi!" << flush;   // flushes the buffer;adds no data
cout << "hi!" << ends;   // inserts a null, then flushes the buffer
cout << "hi!" << endl;    // inserts a newline, then flushes the buffer

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2013-10-16 02:29 |显示全部楼层
一月三十日加一个月是哪一天?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP