超麻烦时间类型处理函数
现在我有这样一个字符串
char buf[] = 20:22:219
现在我想先把它转换成时间类型
对时间加半小时
再转换成char[]类型的
[解决办法]
int nHour;
int nMinute;
int nSecond;
char buf[] = "20:22:219 ";
sscanf( buf, "%0d:%0d:%0d ", &nHour, nMinute, nSecond );
COleDateTime t1(nHour, nMinute, nSecond);
COleDateTime t2(0, 30, 0);
t1 += t2;
sprintf( buf, "%0d:%0d:%0d ", t1.GetHour(), t1.GetMinute(), t1.GetSecond() );
[解决办法]
CTime time;
sscanf(buf, "%2ld:%2ld:%ld ", &time.nHour, &time.nMin, &time.nSec);
time.nMin += 30;
if(time.nMin> =60)
{
time.nHour++;
time.nMin-=60;
}
sprintf(buf, "%02ld:%02ld:%ld ", time.nHour, time.nMin, time.nSec);
[解决办法]
具体问题具体回答
int nHour;
int nMinute;
int nSecond;
char buf[] = "20:22:21 ";
sscanf(buf, "%d:%d:%d ", &nHour, &nMinute, &nSecond );
nMinute += 30;
sprintf(buf, "%d:%d:%d ", nHour, nMinute, nSecond);
其他
int nHour;
int nMinute;
int nSecond;
char buf[] = your_time;
sscanf(buf, "%d:%d:%d ", &nHour, &nMinute, &nSecond );
nMinute += 30;
if (nMinute > = 60)
{
nHour+=1;
nMinute%=60;
if (nHour > = 24) nHour%=24;
}
sprintf(buf, "%d:%d:%d ", nHour, nMinute, nSecond);