有效算法计算两次之间的差异?

时间:2012-03-25 14:57:38

标签: android time

我有一个火车时刻表应用程序,我正在尝试使用以下格式HH:MM来计算两次之间的差异,因此我的用户可以轻松查看火车是否迟到(注意:我正在获取“真实”来自互联网的数据,因此它是最新的)。这就是我现在正在做的事情:

    //schedule time of the train
    int hs=12;
    int ms=0;

    //real time of the train
    int hr=12;
    int mr=15;

    int t1=hs*60 + ms;
    int t2=hr*60 + mr;

    int d; //integer for the difference in minutes
    if(hr>=hs) d=t2-t1; //standard situation
    else d=1440+t2-t1; //for situation like sch: 23:55, real: 00:05

这是对的吗?我忘了什么吗?我在此算法之前尝试了几次,所有这些都有轻微的错误,这可能会让我的用户感到困惑。据我所知,这个没有任何故障,至少我找不到任何故障。

P.S。:我不会使用任何第三方库,所以我必须编写自己的算法,所以我希望它将是最终的......

THX!

编辑:注意:在这个例子中,hs / ms / hr / mr的值是硬编码的,在我的应用程序中,我为每一行正确更新了它们。

2 个答案:

答案 0 :(得分:1)

除了夏令时外,这应该给你在任何一天或任何一天的边界上的微小差异。

答案 1 :(得分:1)

您应该使用Java DateCalendar以及DateFormat实用程序类来实现您想要的(它们不是第三方,它们是Java库并包含在Android SDK中)

你在这里有一个很好的例子:Is there a function to calculate the difference between two times and display a relative result?

对于DateFormat类,你有一个很好的例子:http://www.exampledepot.com/egs/java.text/formatdate.html