因此,有两个日期,我必须检查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
}
我几个小时都在挣扎这个。
答案 0 :(得分: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");
答案 1 :(得分: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
}
稍微想一想,我相信你可以想出一个更简单的方法。
答案 2 :(得分:2)
对5个逻辑运算符和6个Paul,R的比较,这里有4个逻辑运算符的版本,5个比较):
if(date1_year>date2_year ||
(date1_year==date2_year && (date1_month>date2_month
|| (date1_month==date2_month && date1_day>date2_day))))
答案 3 :(得分:2)