我为初级 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/