如何比较C / C ++中的日期范围? [英] How to compare range of date in C/C++?

查看:142
本文介绍了如何比较C / C ++中的日期范围?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有任何系统定义的函数来比较C / C ++中的两个日期?

Is there any system defined function to compare two dates in C/C++?

感谢

推荐答案


  1. 将日期(您选择格式)转换为自时代开始的秒。请使用strptime和mktime。

  2. 比较两个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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆