当前的时间是A时B分
读取的配置文件时间是C时D分如何判断,两个时间差大于5分钟?------------------------------
我用了六个判断才算完成此功能,觉得很烦琐应该有更优的方法吧?欢迎讨论
如果没有,权当散分.....
读取的配置文件时间是C时D分如何判断,两个时间差大于5分钟?------------------------------
我用了六个判断才算完成此功能,觉得很烦琐应该有更优的方法吧?欢迎讨论
如果没有,权当散分.....
解决方案 »
- C++解析HTML(XPATH)有哪些可以选择?
- 在dialog上显示本地的bmp图片?
- 单文档中的菜单栏中插入一个新项问题?
- 这段代码错在何处。。。
- 大量历史数据曲线描绘:存成什么格式的文件在读取的时候方便快捷,怎么手动改变坐标轴的比例。????
- 有做过兼职接过活的吗?项目的收费标准是什么?
- 用ADO连接Access数据库问题
- “const” 什么时候会放到语句的最后面?
- 在一个Lib上封装新的DLL问题
- 想学VC++,我以学了WINDOWS API编程,请问下一步该学啥?哪位行家帮帮忙!thank you
- directshow做了个简单的filter,但如何做成应用程序呢?
- 怎样在对话框上面按键隐藏或显现某个控件?
如果有年月日,可以用COleDateTime来处理
{
if(abs(D - B) >= 5){//out}}
else
{
if(((A - C)*60 + B -D) >= 5){//out}
}
他是两个时间的差,并不能单纯只判断,小时和分钟的差,他的判断还包含更多的年月日等
if(abs(A*60+B-C*60-D) > 5)
{
CloseComputer();
}
if(A*60+B-C*60-D) > 5)
{
CloseComputer();
}
CTime tm2(1999,1,1,c,d,0);//时间是C时D分 来初始化变量
CTimeSpan span = tm1 - tm2;
LONG min = span.GetMinutes();
LONG min = span.GetMinutes();
int sec = span.GetSecond();
if((60*min+sec)>300)
{}
else
{}
COleDateTime t2( 2006, 7, 8, 12 ,20, 4 );
COleDateTimeSpan ts = t1 - t2; if(ts.GetTotalMinutes()>5)
MessageBox("大于5分钟");
配置是0:2
相差4分钟带入公式(A*60+B-C*60-D)
=(23*60+58-0*60-2)
=23*60+56这个数无论如何也比24*60小呀所以判断时间的公式是5<(A*60+B-C*60-D)<23*60+55
SYSTEMTIME st1, st2; //两个要比较的时间
DWORD ts1 = 0;
DWORD ts2 = 0; //转换为秒
tm ts;
ts.tm_year = st1.wYear-1900;
ts.tm_mon = st1.wMonth-1;
ts.tm_mday = st1.wDay;
ts.tm_hour = st1.wHour;
ts.tm_min = st1.wMinute;
ts.tm_sec = st1.wSecond;
ts1 = mktime(&ts);ts.tm_year = st2.wYear-1900;
ts.tm_mon = st2.wMonth-1;
ts.tm_mday = st2.wDay;
ts.tm_hour = st2.wHour;
ts.tm_min = st2.wMinute;
ts.tm_sec = st2.wSecond;
ts2 = mktime(&ts);if (abs(ts1 - ts2) > 5*60)
{//秒数大于5*60
TRACE("***************\n");
}
else
{
}