论坛首页 编程语言技术论坛

关于C的一个时间处理问题(vc6.0)

浏览 2047 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-12-24   最后修改:2009-12-24
C
个人做个商场收银系统维护,版本比较老,是vc6.0,今天是平安夜,涉及到这样一个问题,今天得销售要延长到凌晨以后,为了使销售产生在一天所以将系统时间统一调前3个小时,这样由于打印出来的小票面对顾客也是取的这个时间,所以需要从c中调整为当前时间:本身系统中时间是char[9]“hh:mm:ss”;
自己估计二把刀吧,用了几个小时弄出个这样的函数,倒是功能实现了,可总觉得还有更好方法
先将个人拙见贴出,欢迎拍砖
String time_test(char hh[9]){
	char hour[3];//存取系统已有的time[9]中的hh,一开始定义为hour[2],取值错误,汗颜
	int ihour=0;//将取到的hour保存为整形以便做计算。
	string shh;//为函数返回类型弄的,一开始返回hour 就是取不对值,汗
	shh="";
	*hour='\0';
	sprintf(hour,"%.2s",hh);
	ihour=atoi(hour);
	ihour=ihour+3;
	gcvt((double)(ihour),2,hour);
	if(ihour==24)
		sprintf(hour,"%.2s","00");
	if(ihour>24)
		ihour=ihour-24;
	if(ihour<10)
	{
		hour[1]=hour[0];
		hour[0]='0';
	}
	spirntf(shh,"%.2s",hour);
	return(shh);
}

在打印中引用这个函数
……
sprintf(hour,"%.2s",time_test(time));
time[0]=hour[0];
time[1]=hour[1];
   发表时间:2009-12-25  
最后为啥弄那么复杂?
ihour=ihour+3;
if(ihour>=24) ihour-=24;
sprintf(shh,"%02d",ihour);
return ssh;  
0 请登录后投票
   发表时间:2009-12-25   最后修改:2009-12-25
谢谢楼上,学习了
还有当<10 gcvt((double)(ihour),2,hour); 返回的是 类似“1.0”的串
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics