问答1 问答5 问答50 问答500 问答1000
网友互助专业问答平台

c/c++ 两个时间大小比较

提问网友 发布时间:2022-04-20 16:33
声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:1656858193@qq.com
2个回答
热心网友 回答时间:2023-08-18 03:43

  两个时间大小的比较方法描述如下:

  首先解析字符串,获取年月日时分秒各项数值。然后按照先比较年月日,再比较时分秒的办法进行比较。如果大于则返回1,如果小于返回0,如果等于返回2。

       这里面需要利用到两个知识点:

比较年月日,可以先将年月日整合为一个整数,然后比较整数即可比较出年月日的大小

sscanf可以将字符串中的数值提取出来

  代码实现如下:

int compare(const char* time1,const char* time2)
{
    int year1,month1,day1,hour1,min1,sec1;
    int year2,month2,day2,hour2,min2,sec2;
    sscanf(time1,"%d-%d-%d %d:%d:%d",&year1,&month1,&day1,&hour1,&min1,&sec1);
    sscanf(time2,"%d-%d-%d %d:%d:%d",&year2,&month2,&day2,&hour2,&min2,&sec2);
    int tm1 = year1*10000+month1*100+day1;
    int tm2 = year2*10000+month2*100+day2;
    if(tm1!=tm2) return (tm1>tm2)?1:0;//如果相等,大返回1,小返回0
    tm1 = hour1*3600+min1*60+sec1;
    tm2 = hour2*3600+min2*60+sec2;//将时分秒转换为秒数
    if(tm1!=tm2) return (tm1>tm2)?1:0;//如果相等,大返回1,小返回0
    return 2;//到这里必然是相等了
}

热心网友 回答时间:2023-08-18 03:44

有这么复杂么 char str1[30] = "2015-08-06 09:32:60";
char str2[30] = "2015-04-06 09:32:59";这个时间 是控件获取的还是手动输入的?

如果是控件获取的 一般是Ctime类型的,直接可以比较大小;如果手动输入的 可以转成Ctime类 然后再直接比较大小,再输入的时候 控制一下就可以了;

CTime timestr(LPSTR str)
{
 USES_CONVERSION;
 LPSTR strSQL=str;
 int nYear, nMonth, nDate, nHour, nMin, nSec;
 nYear=nMonth=nDate=nHour=nMin=nSec=0;
 sscanf(strSQL, "%d-%d-%d  %d:%d:%d", &nYear, &nMonth, &nDate, &nHour, &nMin, &nSec);    
 CTime t(nYear, nMonth, nDate, nHour, nMin, nSec);     
 return t;
}
然后调用这个 CTime t1=timestr("2015-08-06 09:32:60");
CTime t2=timestr("2015-04-06 09:32:59"); 
int i=0; 
if(t1>t2)
{
      i=1;
}  
else if(t2>t1)
{
      i=0;
}
else
{i=-1;}

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

如何使用cudaMallocPitch和cudaMemcpy2D c语言中时间更新怎么做 c语言如何计算两个时间相差多少 CUDA下,如何测试1MB的数据从主机内存传输到gpu全... 如何阅读源代码 c++中对string字符串做累加操作 如何编写一个PHP的C扩展 为什么下面的程序,执行调用函数和执行宏定义函数... cuda运行循环加法时间长 lua的string.format为什么比"."慢 为什么从GraphicBuffer里memcpy拷贝数据效率特别低 请教关于函数Memcpy的耗时 中国移动手机营业厅怎么查询信用额度 手机号用了3年了,怎么固定信用额度还是0啊? 手机号码信用额度有什么用? 在哪看联通号码的信用额度? 电信手机卡信用额度? 联通手机卡信用额度是干嘛用的 手机号的信用度怎么查? 不懂手机卡信用额度40是什么意思? android ffmpeg支持avi吗 编写一个C#程序,随机产生1000个整数存入数组中,... 能列举些C语言中比较常见重要库函数的用法吗? Linux下,和时间相关的几个函数 C语言free()释放动态内存时报错,研究好长时间也没... 红外光谱测试测试聚苯乙烯,为什么使用四氯化碳?... c语言 时间函数 四硫化碳的作用是什么 用C++编译程序时为什么我在里程,时间,平均速度后... 明天考试用急急急急! 在乙醇的四氯化碳溶液中,加... 光谱纯四氯化碳 能在红外测油仪上用么 请问用红外光谱可以分析出成分吗? [化学--选修有机化学基础]已知某种有机物A的质谱图... 溴的四氯化碳溶液能否氧化醛基? 初中化学 羧酸衍生物的红外光谱特征 如何做好一乙醇的红外光谱 已知某种有机物A的质谱图和红外光谱图如下 ... 有机化学的一道题 求解答 全自动红外测油仪具有哪些特点?
Top