以下代码获取 myobject.settime 中给出的三个数字(小时、分钟和秒),并以军用时间格式正确显示它们。问题是,当我给出三个数字时,我的控制台上的输出是三个完全不同的数字。
public class Clock{
public static void main (String [] args){
Time myobject = new Time();
System.out.println(myobject.tomilitary());
myobject.settime(13, 27, 6 );
System.out.println(myobject.tomilitary());
}
}
class Time{
private int hour, minute, second;
public void settime(int h, int m, int s){
hour = ((h>=0 && h<24) ? h : 0); //ternary operator, kind of like an if statement
hour = ((m>=0 && m<60) ? m : 0);
hour = ((s>=0 && s<60) ? s : 0);
System.out.println(h +"\t" +m +"\t" +s +" \t The next line should display these three numbers");
}
public String tomilitary() {
return String.format("%02d:%02d:%02d", hour , minute , second ); //%02d means display two decimal places for each int after the quote.
}
}
现在我的输出是:
00:00:00
13 27 6 The next line should display these three numbers
06:00:00
但是我输出的最后一行 (06:00:00) 应该是 (13:27:06) 请解释这是怎么回事。
最佳答案
我猜你的问题是这样的:
hour = ((h>=0 && h<24) ? h : 0); //ternary operator, kind of like an if statement
minute= ((m>=0 && m<60) ? m : 0);
second = ((s>=0 && s<60) ? s : 0);
你分配了三次小时
关于Java 时间显示意外结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31930480/