【问题标题】:Calculating the time difference with seconds用秒计算时差
【发布时间】:2013-09-04 08:23:16
【问题描述】:

这里我得到了计算两次(time1,time2)之间差异的代码部分。 如何添加秒并将 60 秒转换为一分钟?

我认为有一种更简单的方法来处理它,但我正在为初学者阅读书籍,所以我想以与此处计算小时和分钟相同的方式得到答案。

  hours=time2/100-time1/100;
  mins=time2%100-time1%100;

  hours=mins>0?hours:hours-1;
  mins=mins>0?mins:mins+60;

【问题讨论】:

标签: java time


【解决方案1】:
 SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
        long startTime = sdf.parse("10:00:00").getTime();
        long endTIme = sdf.parse("11:00:00").getTime();
        long duration = endTIme - startTime;

        int seconds = (int) (duration / 1000) % 60;
        int minutes = (int) ((duration / (1000 * 60)) % 60);
        int hours = (int) ((duration / (1000 * 60 * 60)) % 24);

【讨论】:

    【解决方案2】:

    我假设您已经将时间实现为一个数字,例如 123412:34 在这种情况下,每次解析和比较都更容易。

    int mins1 = time1 / 100 * 60 + time1 % 100;
    int mins2 = time2 / 100 * 60 + time2 % 100;
    int diff = mins2 - mins1;
    

    我想做的是输入数字 123456 等于 12:34:56

    要处理秒数,您可以这样做。

    int secs1 = time1 / 10000 * 60 * 60 + time1 /100 % 100 * 60 + time1 % 100;
    int secs2 = time2 / 10000 * 60 * 60 + time2 /100 % 100 * 60 + time2 % 100;
    int diffInSec = secs1 - secs2;
    

    【讨论】:

    • @Anders R. Bystrup 输入数字是 1234,而不是 12:34,我想做的是输入数字 123456 等于 12:34:56,然后找出差异
    • @user2745860 更新了我的答案。
    猜你喜欢
    • 2019-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-06
    • 1970-01-01
    • 2013-09-05
    相关资源
    最近更新 更多