如何比较一个程序中的两个日期?

use*_*194 0 c++ comparison console-application

所以,有两个日期,我必须检查是否date1远离date2.最好的方法是什么?

int date1_day = 21, date1_month = 1, date1_year = 1990;
int date2_day = 19, date2_month = 5, date2_year = 1989;

if(???)
{
   // date1 is further away
}
Run Code Online (Sandbox Code Playgroud)

几个小时我一直在努力争取这个.

hac*_*cks 8

不使用任何逻辑运算符即可尝试:

int date1 =  date1_day + date1_month*100 + date1_year*10000;
int date2 =  date2_day + date2_month*100 + date2_year*10000;  

if(date1 > date2)  
     printf("date1 is further away than date2\n");
Run Code Online (Sandbox Code Playgroud)


Pau*_*l R 6

这不是火箭手术:

if ( date1_year > date2_year ||
    (date1_year == date2_year && date1_month > date2_month) ||
    (date1_year == date2_year && date1_month == date2_month && date1_day > date2_day))
{
    // date1 is further away
}
Run Code Online (Sandbox Code Playgroud)

稍微想一想,我相信你可以想出一个更简单的方法.

  • "火箭手术"刚刚成为我最喜欢的混合比喻. (6认同)