与本地程序相关的一个bug------要配合利用date命令观察才好!
来源:互联网 发布:松下fpxh编程样列 编辑:程序博客网 时间:2024/05/29 07:29
某哥让我看看如下代码输出什么结果:
#include <iostream>#include <string>#include <ctime>using namespace std;int getTime(int& iBegin, int& iEnd, int days){ time_t tNow; time(&tNow); struct tm tmp_time = *(struct tm*)localtime(&tNow); char szTmp[32]={0}; snprintf(szTmp, sizeof(szTmp), "%d%02d%02d", tmp_time.tm_year + 1900,tmp_time.tm_mon + 1, tmp_time.tm_mday); iBegin = atoi(szTmp); tNow = tNow + days*86400; tmp_time = *(struct tm*)localtime(&tNow); memset(szTmp,sizeof(szTmp), 0); snprintf(szTmp, sizeof(szTmp), "%d%02d%02d", tmp_time.tm_year + 1900,tmp_time.tm_mon + 1, tmp_time.tm_mday); iEnd = atoi(szTmp); return 0;}int main(){int iBegin; int iEnd;getTime(iBegin, iEnd, 366);cout << iBegin << endl;cout << iEnd << endl;return 0;}今天本来是2017年3月25日, 而程序的结果是:
20170326
20180327
于是乎, 我就得出这样一个结论: 这个时间是从明天开始, 1年的时间跨度。 于是根据这个逻辑, 进行判断, 发了个版本, 马上就看到了异常。 原来, 虽然今天是2017年3月25日, 但在这台linux机器上, date命令显示的却是2017年3月26日。 所以, 这段代码的真实含义是:从今天开始, 1年的时间跨度。
坑填平了, 就这样。 以后涉及到linux的时间问题, 千万别忘了看机器本身的时间, date命令搞起。
1 0
- 与本地程序相关的一个bug------要配合利用date命令观察才好!
- 与日期函数 date 相关的命令
- 什么样的程序才算是好程序?
- 一个简单的场景观察程序(OpenGL)
- 如何才成为一个好的程序员
- 怎样才算是一个好的老师???
- 一个Date对象引发的诡异bug
- JAVA Date.before() 的一个小bug
- Android StateListDrawable与透明度Alpha相关的一个bug
- 利用 JConsole观察分析Java程序的运行进行排错调优
- 利用 JConsole观察分析Java程序的运行,进行排错调优
- date命令相关的时间标准
- 电路与Multisim 利用示波器观察二极管的正向电压
- 一个好男人应该找什么样的老婆才合适?
- 怎样才算是一个好的测试用例
- 怎样才算一个好的产品经理?
- 怎样才算一个好的线框图工具?
- vector配合多线程的bug
- Spring中Session过期的问题处理方法
- L2-002. 链表去重
- Android 对拍照、选照和剪切的封装
- 模拟实现strcpy与strcmp函数
- python最优化-梯度下降实现
- 与本地程序相关的一个bug------要配合利用date命令观察才好!
- 中缀表达式转后缀表达式及其计算
- ADB使用详细教程
- Android7.0系统使用Intent跳转到APK安装页
- 一步一步搞清排序之堆排序(JAVA)
- 数据库知识学习--DML操作(一)
- SimpleMappingException异常映射
- Mybatis-enviroments(Chinese)
- Springmvc中异常处理的三种方式