将时间int转换为分钟秒小时

时间:2014-04-02 08:11:14

标签: java math

我在使用devide和modolu运算符时遇到了一些数学问题。

基本上我必须提供mmsshh格式作为输入,输出应该是这样的:“小时”+小时+“分钟”+分钟“秒”+秒。

因此,当我插入003400时,输出应为“小时0分0秒34”。

问题在于0让我无法获得这些单独的数据值。

我已经尝试了以下方法,但它们无法正常工作。

public void setMinutes()
{
    minutes = time / 10000;
}
public int getMinutes()
{
    return minutes;
}
public void setSeconds()
{
    seconds = (time%1E4)/100;
}
public double getSeconds()
{
    return seconds;
}

3 个答案:

答案 0 :(得分:2)

您可以尝试这个非常简单的解决方案:

public static void main(String[] args) {
    String input = "123456";
    String minutes = input.substring(0, 2);
    String seconds = input.substring(2, 4);
    String hours = input.substring(4, 6);
    System.out.println("Hours" + hours + "minutes" + minutes + "seconds" + seconds);
}

输出:

Hours56minutes12seconds34

如果你想获得双打而不是字符串,请执行以下操作:

public static void main(String[] args) {
    String input = "123456";
    Double minutes = parseDouble(input.substring(0, 2));
    Double seconds = parseDouble(input.substring(2, 4));
    Double hours = parseDouble(input.substring(4, 6));
    System.out.printf("Hours %.0f Minutes %.0f Seconds %.0f\n", hours, minutes, seconds);
}

答案 1 :(得分:0)

考虑到非常规输入模式,最好将输入视为String。 获取小时,分钟和秒的值,然后对值执行Integer.parseInt。

答案 2 :(得分:0)

Java方法是使用SimpleDateFormat(或者来自Joda的时间/持续时间,example)来解析字符串。作为奖励,它将检测无效输入,例如日期为246060,持续时间为xx6060。