[code="java"]/**
* 功 能:判断是否是同一天
* 备 注:
@param d1
@param d2
@return
*/
public static boolean isTheSameDay(Date d1,Date d2){
if(d1!=null && d2!=null) {
final long time = d1.getTime();
final long time2 = d2.getTime();
long l = time/MS_OF_ONE_DAY; // MS_OF_ONE_DAY=3600000*24
long l2 = time2/MS_OF_ONE_DAY;
return l==l2;
}
return false;
}[/code]
[b]问题补充:[/b]
to : Alrale
[code="java"]public static boolean isTheSameDay(Date d1,Date d2){
if(d1!=null && d2!=null) {
final long time1 = d1.getTime();
final long time2 = d2.getTime();
// MS_OF_ONE_DAY=3600000*24
return (time1 - time2)/MS_OF_ONE_DAY == 0;
}
return false;
} [/code]
这个肯定是不对的,比如3月31日的 23:59:59 999 和4月1日的00:00:00 000 显然是不同的2天,但是time1-time2=1 整除自然是0 。
to : aninfeel
我的思路就是取得2个时间ms数,然后用ms数整除一天的ms数 就得出 2个时间分别距离1970有多少天 . 如果相距的天数一样自然就是同一天
[b]问题补充:[/b]
HeDYn :
为什么我写的方法不可以呢?
[b]问题补充:[/b]
iampurse :
你看错了吧,
[code="java"]long l = time/MS_OF_ONE_DAY; // MS_OF_ONE_DAY=3600000*24
long l2 = time2/MS_OF_ONE_DAY;
return l==l2; [/code]
这怎么是2个long想减 == 0 啊 ? 完全不一样啊。