如何解决这个问题?java作业

如何解决这个问题?java作业,java,Java,我有作业 这是我的问题 我的代码是 public class DisplayTime { public static void main(String[] args) { int seconds = 290; int hour = seconds/60/60; int minute = seconds/60; seconds = seconds%60; System.out

我有作业

这是我的问题

我的代码是

public class DisplayTime {

    public static void main(String[] args) {        
        int seconds = 290;
        int hour = seconds/60/60;
        int minute = seconds/60;

        seconds = seconds%60;      

        System.out.printf("The amount of [ 290 ] seconds are %02d:%02d:%02d\n",hour,minute,seconds);

         seconds = 7650;
         hour = seconds/60/60;
         minute  = seconds/60;

         seconds = seconds%60;

         System.out.printf("The amount of [ 7650 ] seconds are %02d:%02d:%02d\n",hour,minute,seconds);
    }
}
我在7650中的输出不一样为什么(


我的解决方案是真的吗?

这是因为你没有用分钟减去小时,所以小时是重复计算的。也就是说,用
minute=seconds/60-hour*60;
代替
minute=seconds/60;
你会得到正确的结果

实际上,对于第一部分(
[290]秒的时间是00:04:50
),您还应该修改代码。它看起来不错的原因是因为290秒不到一小时,所以问题没有出现

以下是完整代码:

public class DisplayTime {

    public static void main(String[] args) {

        int seconds = 290;
        int hour = seconds / 60 / 60;
        int minute = seconds / 60 - hour * 60;;

        seconds = seconds % 60;

        System.out.printf("The amount of [ 290 ] seconds are %02d:%02d:%02d\n", hour, minute, seconds);

        seconds = 7650;
        hour = seconds / 60 / 60;
        minute = seconds / 60 - hour * 60;

        seconds = seconds % 60;

        System.out.printf("The amount of [ 7650 ] seconds are %02d:%02d:%02d\n", hour, minute, seconds);
    }
}
结果如下:

The amount of [ 290 ] seconds are 00:04:50
The amount of [ 7650 ] seconds are 02:07:30

正如@Balwinder在他的评论中提到的,您最好有一个helper方法,它接受秒数并打印出格式化的显示时间

public static void printHMS(int secs) {
    int seconds = secs % 60;
    int minutes = (secs / 60) % 60;
    int hours   = (secs / 60) / 60;

    System.out.printf("The amount of [ %d ] seconds are %02d:%02d:%02d\n", secs, hours, minutes, seconds);
}

public static void main(String args[]) {
    printHMS(290);
    printHMS(7650);
}
输出:

The amount of [ 290 ] seconds are 00:04:50
The amount of [ 7650 ] seconds are 02:07:30

像专业人士那样做:

    /*** Returns the Time**/
public static String getTimeEdited(int seconds) {

    if (seconds / 60 > 60) // Is more than one hour>60
        return String.format("%02d:%02d:%02d",(seconds/60)/60,(seconds/60)%60,seconds%60);
    else                  // Is less than one hour<60
        return String.format("%02d:%02d",(seconds/60)%60,seconds%60);


}
/***返回时间**/
公共静态字符串getTimeEdited(整数秒){
如果(秒/60>60)//大于一小时>60
返回字符串。格式(“%02d:%02d:%02d”,(秒/60)/60,(秒/60)%60,秒%60);

否则//不到一小时顺便说一下,您的问题要求您创建一个能够将秒转换为小时、分钟和秒的程序。在这里,您只是尝试对两个值(290和7650)执行此操作。如果你懒得添加问题,你可以添加一个只包含有趣部分的屏幕截图…@Mohannad非常感谢,周末快乐:-)