Java将字符串中的两个整数拆分为double(转换时间)

标签 java string time

我为初级 Java 类分配的部分任务是获取以字符串形式输入的时间,并将其转换(同时四舍五入到最近的刻钟)为 double 型并将其存储在数组中。我遇到困难的部分是如何处理从 String 类的 split 方法收到的两个整数。如何将两个整数转换为一个 double 以在数组中使用? (所以它就像小时.分钟,或 5.25) 这是我正在开发的程序中的一段代码:

    public static double convertClockOutTimes(String clockOut){
    double convertedTimeOut = 0;
    String time = clockOut;
    int hours;
    int minutes;
    String[]splitFields;
    splitFields = time.split(":");
    hours = Integer.parseInt(splitFields[0]);
    minutes = Integer.parseInt(splitFields[1]);
    if (minutes <= 7)
    {
        minutes = 0;
    }
    else if (minutes >= 8 || minutes <= 22)
    {
        minutes = 15;
    }
    else if (minutes >= 23 || minutes <= 37)
    {
        minutes = 30;
    }
    else if (minutes >= 31 || minutes <= 53)
    {
        minutes = 45;
    }
    else
    minutes = 0;
    hours = hours + 1;

    convertedTimeOut = //This is where I don't know what to do!!


   return convertedTimeOut;
    }

最佳答案

我认为诀窍是在这里使用一些数学知识。您始终可以执行以下操作:

double convertedTimeOut = Math.round(minutes / 15.0) * 0.25 + hours;

那么你不需要 if-else 树来计算最近的一刻钟。

一刻钟有 15 分钟,一刻钟就是 0.25 小时。使用上面的公式,您可以将分钟除以一刻钟的数量 (0-4),然后乘以一刻钟的小时数。然后将其添加到您拥有的时间中。

Math.round 只是为您进行舍入。

关于Java将字符串中的两个整数拆分为double(转换时间),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15329908/

相关文章:

java - AsyncResult 和 Futures 的结果存储在哪里/如何?

string - 取消缩进多行字符串值

java分割字符串函数

从我的时间戳中删除一个小时

python - 在特定日期之间重复 Pandas 中的值

java - java 断言不失败的原因

Java 无法及时收集垃圾

java - IntelliJ IDEA Community Edition 12、Ctrl+空格功能

c# - 按 2 个小数点对字符串列表进行排序

PHP 将时间戳转换为月份和日期