Java小时到分钟简单转换

时间:2014-05-07 19:45:14

标签: java string compiler-errors int typeconverter

我正在制作一个简单的程序,给出2次(1015和1025以及0925和1010)将返回它们之间的分钟时差。

所以

1015和1025 - >差异10分钟

2 个答案:

答案 0 :(得分:1)

使用时间和日期的正确方法是使用时间/日期实用程序库。试图自己手动进行数学计算是一个很好的方法,可以自己动手。

如果您没有运行Java 8,那么您的两个最佳选择是Joda-Time,如果您运行的话,则是java.time包。

我将给你一个Joda-Time的例子,因为没有遗憾地运行Java 8,但是当我有一个Java 8的例子时,我也会更新这个答案。机会。它们在功能上非常相似(java.time主要基于Joda-Time)。

LocalTime nineTwentyFive = new LocalTime(9, 25);
LocalTime tenTen = new LocalTime(10, 10);
LocalTime tenFifteen = new LocalTime(10, 15);
LocalTime tenTwentyFive = new LocalTime(10, 25);

System.out.println(Minutes.minutesBetween(tenFifteen, tenTwentyFive).getMinutes());
System.out.println(Minutes.minutesBetween(nineTwentyFive, tenTen).getMinutes());
10
45

这两个库都经过高度测试和流行,这意味着您可以相信它们能够开箱即用,即使在您没有预料到的边缘情况下也是如此。不要自己重新实现这种行为。

答案 1 :(得分:0)

这个简单的数学公式会给你答案:

((10*60 +10) - (9*60 + 25))

所以现在你需要做的就是:

  1. 将4位数字符串拆分为2个组号。
  2. 通过将小时数转换为分钟来计算分钟数,并将它们添加到分钟新数字中。
  3. 从较小的数字中减去较大的数字。
  4. 瓦拉!

    代码示例:

    public class goFile {
        public static int SubtractTime(String number1, String number2)
        {
            return Math.abs(ConvertTimeToMinutes(number2) - ConvertTimeToMinutes(number1));
        }
    
        public static int ConvertTimeToMinutes(String number)
        {
            return Integer.parseInt(number.substring(0, 2))*60 + Integer.parseInt(number.substring(2, 4));
        }
    
        public static void main(String[] args) {
            System.out.println(SubtractTime("0925", "1010"));
            System.out.println(SubtractTime("1015", "1025"));
        }
    }