请问大哥们,为什么我的第一段不能判断日子大小?ps注释的那段是正确的
public int compare(Date d) {
if(year > d.year) {
return 1;
}else if(month > d.month) {
return 1;
}else if(day > d.day){
return 1;
}else if(day == d.day) {
return 0;
}else {
return -1;
}
}
/*
public int compare(Date date) {
return year > date.year ? 1
: year < date.year ? -1
: month > date.month ? 1
: month < date.month ? -1
: day > date.day ? 1
: day < date.day ? -1 : 0;
}
*/
很简单,如果你拿一个2016-9和2017-5的对比,第一个if没进去,第二个进去了,返回1,那么问题来了2016-9比2017-5的日期大吗?
只有当前置判断是“==”你才可以进行下一层判断,你只判断了“>”情况,还有“<”情况未判断
如果单纯的比较用year.getTime();转换为毫秒之后再减,就简单了