C语言之自定义__DATE__格式
2015-07-04 13:27
471 查看
C语言之自定义DATE格式
DATE的好用之外不用再特意说明,比如某个程序编译时间需要显示出来,那么就不需要每编译一次都改一次时间。比如今天是2015-07-03,那么DATE宏会输出
Jul 03 2015,比如我想要一个2015/07的效果。但是并不支持自定义,使用Different format of DATE macro可以改变显示的顺序,但是并不能将Jul改成07。发现有Convert string from DATE into a time_t可以实现将DATE改为time_t,如下代码:
[code]/** * @brief getDateFromMacro * @param time __DATE__ * @return */ static time_t getDateFromMacro(char const *time) { char s_month[5]; int month, day, year; struct tm t = {0}; static const char month_names[] = "JanFebMarAprMayJunJulAugSepOctNovDec"; sscanf(time, "%s %d %d", s_month, &day, &year); month = (strstr(month_names, s_month)-month_names)/3; t.tm_mon = month; t.tm_mday = day; t.tm_year = year - 1900; t.tm_isdst = -1; return mktime(&t); }
转换成time_t后,就已经基本上大路了。比如用在Qt开发中可以转换成任意类型。
[code]QDateTime dt = QDateTime::fromTime_t( (uint)getDateFromMacro(__DATE__)); this->setWindowTitle("HELLO WORLD " + tr("(") + dt.toString("yyyy/MM") + tr(")"));
显示效果为:
相关文章推荐
- C++ && 汇编
- C语言中测试程序运行时间(亲自测试过)
- C语言注释规范
- 《C语言及程序设计》实践参考——个税计算器之码数分离
- 《C语言及程序设计》实践参考——体重监测器
- 《C语言及程序设计》实践参考——点结构体
- C++ Builder如何使用蓝牙打印机
- 《C语言及程序设计》实践参考——学生成绩处理
- 《C语言及程序设计》实践参考——复数结构体
- (c++)Invalid parameter passed to C runtime function
- 【Effective C++ 读书笔记】条款02: 尽量以 const, enum, inline 替换 #define
- 《C语言及程序设计》实践项目——初练结构体
- C++堆排序代码
- 【c语言】模拟库函数strstr
- C++ Primer学习笔记(7)——指针形参和引用形参的比较
- 黑马程序员---C语言基础---Switch语句
- C++ 静态数据成员和静态成员函数
- C语言的指针
- c语言指针详解
- C++ Primer学习笔记(6)—— 巧用引用形参