android中的时差计算

时间:2015-02-11 10:52:37

标签: java android

我正在计算时差并从差异时间减去休息

我无法从时差中减去休息时间。

    long hoursDifference,mindifference;
            d1 = df.parse(strattime);
            d2 = df.parse(endtime);
            d3= df1.parse(textbreaktime);

     hoursDifference = (long) (d3.getTime()-((d2.getTime() - d1.getTime()))
            / (60 * 60 * 1000) % 24);
     mindifference = (long) ((d3.getTime()-(d2.getTime()) - d1.getTime())
            / (60 * 1000) % 60);

谢谢

1 个答案:

答案 0 :(得分:1)

你的问题是两个错误的括号,正确它应该是这样的

 long hoursDifference,mindifference;
        d1 = df.parse(strattime);
        d2 = df.parse(endtime);
        d3= df1.parse(textbreaktime);

 hoursDifference = (long) (((d2.getTime() - d1.getTime()) - d3.getTime())
        / (60 * 60 * 1000)) % 24;
 mindifference = (long) (((d2.getTime() - d1.getTime()) - d3.getTime())
        / (60 * 1000)) % 60;

但是如果你使用像

这样的Date函数会更容易(并且更易读)
Date result = new Date((d2.getTime() - d1.getTime()) - d3.getTime());
int hours = result.getHours();
int minutes = result.getMinutes();



编辑:
那是你想要的吗? d1 = 2:00
d2 = 2:30
d3 = 0:05
结果=(2:30 - 2:00) - 0:05 = 0:25