如何解决如何从以前的输入继续添加分钟和秒
我想弄清楚如何将用户输入的分钟和秒相加。我不是从当前时间开始添加,所以我知道我需要一个循环来将输入的所有分钟数和秒数相加。我还希望将与 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");
}
}
解决方法
我建议您使用 java.time.Duration
,它以 ISO-8601 standards 为模型,并作为 JSR-310 implementation 的一部分与 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.toSecondsPart());
System.out.println("The total of the 5 times is: " + formattedElapsedTime);
// ##############################################################################
}
}
,
将所有的分和秒分别加起来,然后做
min+=sec/60;
sec=sec%60;
即
...
System.out.print ("Duration 2,how many minutes? ");
min+=keyb.nextInt();
System.out.print ("Duration 2,how many seconds? ");
sec+= keyb.nextInt();
...
min+=sec/60;
sec=sec%60;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。