c++ 根据编译时间的版本号输出

看了一段代码,根据版本的编译日期生成版本号,觉得很不错,记下来以后可用,哈哈

GetVersion()
{
	std::string monthes[] =
	{
		"Jan",
		"Feb",
		"Mar",
		"Apr",
		"May",
		"Jun",
		"Jul",
		"Aug",
		"Sep",
		"Oct",
		"Nov",
		"Dec",
	};  

	std::string dateStr = __DATE__; 

	int year = atoi(dateStr.substr(dateStr.length() - 4).c_str());

	int month = 0;
	for(int i = 0; i < 12; i++)
	{
		if(dateStr.find(monthes[i]) != string::npos)
		{
			month = i + 1;
			break;
		}
	}  

	std::string dayStr = dateStr.substr(4, 2);
	int day = atoi(dayStr.c_str());

	std::string timeStr = __TIME__;  

	std::string hourStr = timeStr.substr(0, 2);
	int hour = atoi(hourStr.c_str());

	char version[20];
	sprintf(version, "1.0.%04d%02d%02d%02d", year, month, day, hour);

	return version;
}
时间: 2024-11-06 19:15:15

c++ 根据编译时间的版本号输出的相关文章

C#获取程序集自动增加的版本号和编译时间

1. 首先找到文件AssemblyInfo.cs, 路径如下: 2. 修改版本的格式,修改后,程序每次编译,程序集的版本号都会自增. 修改前: [assembly: AssemblyVersion("1.0.0.0")][assembly: AssemblyFileVersion("1.0.0.0")] 修改后: [assembly: AssemblyVersion("1.0.*")][assembly: AssemblyFileVersion(

linux 程序、动态库、静态库内部添加版本号和编译时间

给程序和库添加版本号和库,有利于维护和升级. 当然你可以在文件名上体现,比如有个程序叫 yun,文件名写为 yun_1.0.2,但这个需要每次手动维护,而且不能100%确保当前程序就是那个版本.所以,把版本号体现在程序内部,是一个不错的选择. -----------------------------------  我是做法分割线 o  ------------------------------------ 一.可执行程序 程序内部定义版本宏,然后 main 函数通过 -v 参数,打印版本号和

C#获取程序集的版本号和最后编译时间

C#获取程序集的版本号:string ver = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); C#中如何将记录项目的最后编译时间:在实际的软件开发工作中,我们通常需要记录某个工程的最后编译时间,原来在C++中,我们有个__DATE__,__TIME__,__FILE__,__LINE__这样的异性宏定义可以使用,但是在C#中,不能使用,但是可以用以下语句来获得最后编译时间.Syst

减少C++代码编译时间的方法

c++ 的代码包含头文件和实现文件两部分, 头文件一般是提供给别人(也叫客户)使用的, 但是一旦头文件发生改变,不管多小的变化,所有引用他的文件就必须重新编译,编译就要花时间,假如你做的工程比较大(比如二次封装chrome这类的开发),重新编译一次的时间就会浪费上班的大部分时间,这样干了一天挺累的, 但是你的老板说你没有产出,结果你被fired, 是不是很怨啊, 如果你早点看到这段文章,你就会比你的同事开发效率高那么一些,那样被fired就不会是你了,你说这篇文章是不是价值千金!开个玩笑 :),

浅谈 .NET 程序的编译时间

我们在编写 .NET 程序时,经常会在该程序的"关于本软件"对话框中给出这个程序的编译时间,如下图所示: 上图中的编译时间是如果得到的呢?其实是在其 C# 源程序中有这么一句: [assembly: AssemblyVersion("1.3.*")] 上述语句使用了 System.Reflection.AssemblyVersionAttribute 类,该类用于指定正在特性化的程序集的版本.在 MSDN 文档中有以下描述: 程序集版本号是程序集标识的一部分,在绑定

如何把apk编译时间和最后次git commit的sha值,写入到app中

需求背景:我们修复Bug的时候,频繁提交APK包,导致测试同学搞不清哪个包才是最新的 比如一个版本3.0.1,我们可能后续基于这个版本陆续提交了好几个修复包 同时,如果服务端ip地址能在界面上配置的话,更好了 以上都是基于debug模式下的,线上版本不会出现这些选项 思路:git每次提交commit的时候,都会创建一个唯一的sha串,我们拿这个作为内部版本号. 先给上最终效果图 那么如何在gradle编译的时候,就把这些信息写入到app中呢 关键字 BuildConfig类. 在build.gr

打印程序编译时间

打印程序编译时间 #include <stdio.h> int main() { printf(__DATE__); printf("\n"); printf(__TIME__); printf("\n"); return 0; }

python 下获取系统时间并格式化输出

python下面有两个时间的模块,time和datetime,当然在使用的时候都需要先import. 获得系统当前时间time.localtime(time.time()) 时间的格式化输出可以使用time下的strftime,调用为time.strftime() 例子为current_time=time.strftime('%Y-%m-%d',time.localtime(time.time())) 输出的时间格式为2015-02-11,这个输出是一个string类型的数据 还有datatim

执行计划 编译时间等

缓存执行计划 SQL Server 2008提供了一些服务器对象来分析执行计划 Sys.dm_exec_cached_plans:    包含缓存的执行计划,每个执行计划对应一行. Sys.dm_exec_plan_attributes: 这是一个系统函数,每一个执行计划都对应着一些属性,在这个系统函数中包含着这些属性. Sys.dm_exec_sql_text:             这是一个系统函数,返回文字格式的执行计划. Sys.dm_exec_query_plan:        这