iteye_15034 2009-04-01 10:56
浏览 173
已采纳

判断是否是同一天的函数 ,为什么不行呢?

[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 啊 ? 完全不一样啊。

  • 写回答

9条回答 默认 最新

  • iteye_9130 2009-04-02 14:08
    关注

    [code="java"]
    public static boolean isTheSameDay(Date d1,Date d2) {
    Calendar c1 = Calendar.getInstance();
    Calendar c2 = Calendar.getInstance();
    c1.setTime(d1);
    c2.setTime(d2);
    return (c1.get(Calendar.YEAR) == c2.get(Calendar.YEAR))
    && (c1.get(Calendar.MONTH) == c2.get(Calendar.MONTH))
    && (c1.get(Calendar.DAY_OF_MONTH) == c2.get(Calendar.DAY_OF_MONTH));
    }
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(8条)

报告相同问题?

悬赏问题

  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果