gpt4 book ai didi

Java代表时间类

转载 作者:行者123 更新时间:2023-12-02 03:53:40 24 4
gpt4 key购买 nike

我想用我的时间类来表示时间。我无法使用 get 和 set 方法。只有我可以在代码上使用列出的方法。但它不起作用。它返回 0:0:0。

 public int addHours(int hours)
{
if(hours>=0&&hours<=23)
{
return hours;
}
return 0;
}
public int addMinutes(int minutes)
{
if(minutes>=0&&minutes<=59)
{
return minutes;
}
return 0;
}
public int addSeconds(int seconds)
{
if(seconds>=0&&seconds<=59)
{
return seconds;
}
return 0;
}
public String showTime()
{
return hours+":"+minutes+":"+seconds;
}
}

最佳答案

你的代码什么也没做。

你需要做这样的事情:

public void addHours( int hours ){
this.hours += hours; // add hours
this.hours %= 24; // roll over at 24 hours
}

public void addMinutes( int minutes ){
this.minutes += minutes; // add minutes
addHours(this.minutes/60); // carry over to hours
this.minutes %= 60; // roll over at 60 minutes
}

public void addSeconds( int seconds ){
this.seconds += seconds; // add seconds
addMinutes(seconds/60); // carry over to minutes
this.seconds %= 60; // roll over at 60 seconds
}

(这可能并不重要,但这根本不是线程安全的)

但这通常是一个坏主意。 Java 8 有一个漂亮的时间 api,Java-8 之前有 JodaTime 库(它实际上是 Java 8 时间 api 的基础)。看来你想做的事情可以从 LocalTime 中受益:

LocalTime t = LocalTime.of(13,50,27).addHours(1).addMinutes(1).addSeconds(1); 
System.out.println(t.toString());

// prints 14:51:28

关于Java代表时间类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35670996/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com