如何比较C / C ++中的日期范围? [英] How to compare range of date in C/C++?
本文介绍了如何比较C / C ++中的日期范围?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有没有任何系统定义的函数来比较C / C ++中的两个日期?
Is there any system defined function to compare two dates in C/C++?
感谢
推荐答案
- 将日期(您选择格式)转换为自时代开始的秒。请使用strptime和mktime。
- 比较两个time_t(秒)值。
使用MON-DD-YYYY格式的示例:
CODE:
#include <time.h>
time_t to_seconds(const char *date)
{
struct tm storage={0,0,0,0,0,0,0,0,0};
char *p=NULL;
time_t retval=0;
p=(char *)strptime(date,"%d-%b-%Y",&storage);
if(p==NULL)
{
retval=0;
}
else
{
retval=mktime(&storage);
}
return retval;
}
int main()
{
char *date1="20-JUN-2006";
char *date2="21-JUN-2006";
time_t d1=to_seconds(date1);
time_t d2=to_seconds(date2);
printf("date comparison: %s %s ",date1,date2);
if(d1==d2) printf("equal\n");
if(d2>d1) printf("second date is later\n");
if(d2<d1) printf("seocnd date is earlier\n");
return 0;
}
这篇关于如何比较C / C ++中的日期范围?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文