Java 如何在上一次输入的基础上继续计算分和秒

Java 如何在上一次输入的基础上继续计算分和秒,java,java-time,duration,Java,Java Time,Duration,我试图找出如何将用户输入的分和秒相加。我不是从当前时间添加,所以我知道我需要一个循环,将输入的所有分钟和秒相加。我还希望将增加到60的秒添加到分钟中,而不是将其列为一堆秒。这是我的密码: import java.util.*; public class timeAdder { public static void main(String[] args) { Scanner keyb = new Scanner (System.in); System

我试图找出如何将用户输入的分和秒相加。我不是从当前时间添加,所以我知道我需要一个循环,将输入的所有分钟和秒相加。我还希望将增加到60的秒添加到分钟中,而不是将其列为一堆秒。这是我的密码:

import java.util.*;

public class timeAdder {
     public static void main(String[] args) {
         Scanner keyb = new Scanner (System.in);
         System.out.println ("Welcome to the Time Adder!\n ");
         System.out.println("Enter 5 time durations in minutes and seconds\n ");
         
         System.out.print ("Duration 1, how many minutes? ");
         int min = keyb.nextInt();
         System.out.print ("Duration 1, how many seconds? ");
         int sec = keyb.nextInt();
         System.out.print ("Duration 2, how many minutes? ");
         min=keyb.nextInt();
         System.out.print ("Duration 2, how many seconds? ");
         sec= keyb.nextInt();
         System.out.print ("Duration 3, how many minutes? ");
         min = keyb.nextInt();
         System.out.print ("Duration 3, how many seconds? ");
         sec = keyb.nextInt();
         System.out.print ("Duration 4, how many minutes? ");
         min = keyb.nextInt();
         System.out.print ("Duration 4, how many seconds? ");
         sec = keyb.nextInt();
         System.out.print ("Duration 5, how many minutes? ");
         min = keyb.nextInt();
         System.out.print ("Duration 5, how many seconds? ");
         sec = keyb.nextInt();

         System.out.println("The total of the 5 times is: \n");         
     }
}

把所有的分和秒分别加起来,然后做

min+=sec/60; 
sec=sec%60;
i、 e

我建议您使用它,它是以Java-8为模型的,并且是作为的一部分引入的。Java-9引入了一些更方便的方法

import java.time.Duration;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner keyb = new Scanner(System.in);
        Duration duration = Duration.ZERO;

        System.out.println("Welcome to the Time Adder!\n ");
        System.out.println("Enter 5 time durations in minutes and seconds\n ");

        System.out.print("Duration 1, how many minutes? ");
        duration = duration.plusMinutes(keyb.nextInt());
        System.out.print("Duration 1, how many seconds? ");
        duration = duration.plusSeconds(keyb.nextInt());
        System.out.print("Duration 2, how many minutes? ");
        duration = duration.plusMinutes(keyb.nextInt());
        System.out.print("Duration 2, how many seconds? ");
        duration = duration.plusSeconds(keyb.nextInt());
        System.out.print("Duration 3, how many minutes? ");
        duration = duration.plusMinutes(keyb.nextInt());
        System.out.print("Duration 3, how many seconds? ");
        duration = duration.plusSeconds(keyb.nextInt());
        System.out.print("Duration 4, how many minutes? ");
        duration = duration.plusMinutes(keyb.nextInt());
        System.out.print("Duration 4, how many seconds? ");
        duration = duration.plusSeconds(keyb.nextInt());
        System.out.print("Duration 5, how many minutes? ");
        duration = duration.plusMinutes(keyb.nextInt());
        System.out.print("Duration 5, how many seconds? ");
        duration = duration.plusSeconds(keyb.nextInt());

        // In default format
        System.out.println(duration);

        // Custom format
        // ####################################Java-8####################################
        String formattedElapsedTime = String.format("%02d:%02d:%02d", duration.toHours() % 24,
                duration.toMinutes() % 60, duration.toSeconds() % 60);
        System.out.println("The total of the 5 times is: " + formattedElapsedTime);
        // ##############################################################################

        // ####################################Java-9####################################
        formattedElapsedTime = String.format("%02d:%02d:%02d", duration.toHoursPart(), duration.toMinutesPart(),
                duration.toSecondsPart());
        System.out.println("The total of the 5 times is: " + formattedElapsedTime);
        // ##############################################################################

    }
}
运行示例:

Welcome to the Time Adder!
 
Enter 5 time durations in minutes and seconds
 
Duration 1, how many minutes? 5
Duration 1, how many seconds? 10
Duration 2, how many minutes? 15
Duration 2, how many seconds? 20
Duration 3, how many minutes? 25
Duration 3, how many seconds? 30
Duration 4, how many minutes? 35
Duration 4, how many seconds? 40
Duration 5, how many minutes? 45
Duration 5, how many seconds? 50
PT2H7M30S
The total of the 5 times is: 02:07:30
The total of the 5 times is: 02:07:30
进一步改进: 我建议对五组输入使用循环

import java.time.Duration;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner keyb = new Scanner(System.in);
        Duration duration = Duration.ZERO;

        System.out.println("Welcome to the Time Adder!\n ");
        System.out.println("Enter 5 time durations in minutes and seconds\n ");

        for (int i = 1; i <= 5; i++) {
            System.out.print("Duration " + i + ", how many minutes? ");
            duration = duration.plusMinutes(keyb.nextInt());
            System.out.print("Duration " + i + ", how many seconds? ");
            duration = duration.plusSeconds(keyb.nextInt());
        }

        // In default format
        System.out.println(duration);

        // Custom format
        // ####################################Java-8####################################
        String formattedElapsedTime = String.format("%02d:%02d:%02d", duration.toHours() % 24,
                duration.toMinutes() % 60, duration.toSeconds() % 60);
        System.out.println("The total of the 5 times is: " + formattedElapsedTime);
        // ##############################################################################

        // ####################################Java-9####################################
        formattedElapsedTime = String.format("%02d:%02d:%02d", duration.toHoursPart(), duration.toMinutesPart(),
                duration.toSecondsPart());
        System.out.println("The total of the 5 times is: " + formattedElapsedTime);
        // ##############################################################################

    }
}
import java.time.Duration;
导入java.util.Scanner;
公共班机{
公共静态void main(字符串[]args){
扫描仪keyb=新扫描仪(System.in);
持续时间=持续时间0;
System.out.println(“欢迎使用时间加法器!\n”);
System.out.println(“以分钟和秒为单位输入5个持续时间\n”);

对于(int i=1;我注意到:您有很多重复的代码。您可以使用(
for
)循环来代替。我如何用诸如“27分5秒”之类的文字显示总时间谢谢你,Ole。@user15200162-如果你还没有弄清楚Ole的建议,或者你正在努力使用
printf
,你可以使用
System.out.println(“5次的总次数是”+duration.toHoursPart()+“hours”+duration.toMinutesPart()+“分钟”和“+duration.toSecondsPart()+“秒”)
。但是,我强烈建议您仔细阅读并练习那里的示例。它必须以分钟和秒为单位。就像它不能再显示0小时一样,我很难修复它that@user15200162-在这种情况下,它应该是
System.out.println(“5次的总和是”+duration.toMinutes()+“分钟和”+持续时间.toSecondPart()+“秒”。)
import java.time.Duration;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner keyb = new Scanner(System.in);
        Duration duration = Duration.ZERO;

        System.out.println("Welcome to the Time Adder!\n ");
        System.out.println("Enter 5 time durations in minutes and seconds\n ");

        for (int i = 1; i <= 5; i++) {
            System.out.print("Duration " + i + ", how many minutes? ");
            duration = duration.plusMinutes(keyb.nextInt());
            System.out.print("Duration " + i + ", how many seconds? ");
            duration = duration.plusSeconds(keyb.nextInt());
        }

        // In default format
        System.out.println(duration);

        // Custom format
        // ####################################Java-8####################################
        String formattedElapsedTime = String.format("%02d:%02d:%02d", duration.toHours() % 24,
                duration.toMinutes() % 60, duration.toSeconds() % 60);
        System.out.println("The total of the 5 times is: " + formattedElapsedTime);
        // ##############################################################################

        // ####################################Java-9####################################
        formattedElapsedTime = String.format("%02d:%02d:%02d", duration.toHoursPart(), duration.toMinutesPart(),
                duration.toSecondsPart());
        System.out.println("The total of the 5 times is: " + formattedElapsedTime);
        // ##############################################################################

    }
}