2014-04-02 57 views
0

我与devide和modolu运算符有一些数学问题。转换时间int到分钟秒小时

基本上我必须给出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; 
} 
+0

分钟,秒和*然后小时*?真?这是一个*彻底*奇怪的输入... –

+0

否则我会这样做,但我的客户坚持这个输入。 – user1833552

+1

目前还不清楚为什么你有这样的API--有一个没有参数的set方法很奇怪。你为什么不只是'get'方法使用'time'? –

回答

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); 
} 

OUTPUT:

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); 
} 
+0

谢谢,这是完美的解决方案:) – user1833552

+0

此解决方案不正常/运载分钟和秒> 59 – bobah

+0

这取决于mmhhss的规格。我期望它们的值在mm [00-59],hh [1-24]和ss [0-59]之间。 – Harmlezz

0

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

0

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

相关问题