系统编译时间的获取

系统编译时间的获取

2015-04-27 15:02:47 yjmu 阅读数 898更多

分类专栏: C++ cocos2d-x 工具

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/yanjunmu/article/details/45310351

在程序打包测试,有时候会需要当前程序编译的时间来标识版本或者其他

ANSIC标准定义了以下6种可供C语言使用的预定义宏:   
       __LINE__                        在源代码中插入当前源代码行号   
       __FILE__                        在源代码中插入当前源代码文件名   
       __DATE__                        在源代码中插入当前编译日期〔注意和当前系统日期区别开来〕   
       __TIME__                        在源代码中插入当前编译时间〔注意和当前系统时间区别开来〕         
       __STDC__                        当要求程序严格遵循ANSIC标准时该标识符被赋值为1

 

所以我们可以通过对应的预定义宏来做

比如格式要求:Test年月日-时分秒

 

//字符串拆分
 
  1. std::vector<std::string> NativeUtils::split(std::string str, std::string pattern)

  2. {

  3. std::string::size_type pos;

  4. std::vector<std::string> result;

  5. str+=pattern;//扩展字符串以方便操作

  6. int size=str.size();

  7.  
  8. for(int i=0; i<size; i++)

  9. {

  10. pos=str.find(pattern,i);

  11. if(pos<size)

  12. {

  13. std::string s=str.substr(i,pos-i);

  14. result.push_back(s);

  15. i=pos+pattern.size()-1;

  16. }

  17. }

  18. return result;

  19. }

 
  1.  
  2. //月份转换

  3. std::string transformMonth(std::string sSrcMonth,bool toNum)

  4. {

  5. std::string sMonths[] = {"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"};

  6. std::string sMonthNums[] = {"01","02","03","04","04","06","07","08","09","10","11","12"};

  7. int size = 0;

  8. GET_ARRAY_LEN(sMonths,size);

  9. std::string sNewMonth = "";

  10. for (int i = 0; i < size; ++i)

  11. {

  12. if (sSrcMonth.find(sMonths[i]) != std::string::npos) {

  13. sNewMonth = sMonthNums[i];

  14. break;

  15. }

  16. }

  17. return sNewMonth;

  18. }

 
  1.  
  2. //产生编译时间对应格式的字符串

  3. std::string NativeUtils::getBulidTime()

  4. {

  5.  
  6. //编译时间

  7. static const char* szDate = __DATE__;

  8. static const char* szTime = __TIME__;

  9. std::vector<std::string> vDate = NativeUtils::split(szDate, " ");

  10. std::vector<std::string> vTime = NativeUtils::split(szTime, ":");

  11. std::string sBulidTime = "Test";

  12. sBulidTime.append(vDate.at(2));

  13. sBulidTime.append(transformMonth(vDate.at(0),true));

  14. sBulidTime.append(vDate.at(1)+"-");

  15. for (auto str : vTime) {

  16. sBulidTime.append(str);

  17. }

  18. return sBulidTime;

  19. }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值