Java 时间显示意外结果?

标签 java class object methods

以下代码获取 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/

相关文章:

java - 如何使用java区分表单中的三个组合框?

php - `$this->name` 和 `$this->$name` 有什么区别?

c++如何实现这种类结构?

C++ 类模板复制构造函数返回类型

Java 添加到 ArrayList<String> 然后转换为 Object[][]

java - 当用户滚动到 RecyclerView 底部时,使用 ScrollListener 从 Firebase 实时数据库提取数据时出现问题

java - groovy 调用 Java 父类(super class)中的私有(private)方法

javascript - 为什么将一个函数(属于一个对象)分配给一个变量会有这样的行为?

javascript - 访问对象中的函数

java - 您无法映射不存在的属性 : propertyName=baseName when build using gradle 7. 0