gpt4 book ai didi

java - java中的时间和小时

转载 作者:行者123 更新时间:2023-12-02 16:05:51 27 4
gpt4 key购买 nike

import java.util.Scanner;

public class Nc3 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);

System.out.println("Enter time of arrival: ");
double time = input.nextDouble();
int arrivalTime;
arrivalTime = 0;
arrivalTime += time;

if (time % 20 != 0) {
time %= 20;
time = 20 - time;
System.out.println(arrivalTime +time);
}

else if (((arrivalTime + time) % 100) == 60.0) {
time += 40;
System.out.println(arrivalTime + time);
}
else
System.out.println("Now - " +arrivalTime);

}
}

我被要求编写一个程序来获取当前时间的输入并返回下一辆公共(public)汽车离开的时间知道公共(public)汽车每 20 分钟在 00、20、40 离开,问题是如果我输入 2243 表示 22:43 我将得到 2260 而不是 2300

最佳答案

java.time

我建议您使用 java.time.Duration这是仿照ISO-8601 standards并作为 JSR-310 implementation 的一部分与 Java-8 一起引入.

演示:

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

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

System.out.print("Enter time of arrival: ");
showNextDepartureTime(input.nextLine());
}

static void showNextDepartureTime(String arrivalTime) {
Duration nextDeparture = Duration.between(LocalTime.MIN, LocalTime.parse(arrivalTime));
int remainder = nextDeparture.toMinutesPart() % 20;
if (remainder != 0)
nextDeparture = nextDeparture.minusMinutes(remainder).plusMinutes(20);

System.out.printf("The next departure is at %2d:%02d", nextDeparture.toHoursPart(),
nextDeparture.toMinutesPart());
}
}

示例运行:

Enter time of arrival: 22:43
The next departure is at 23:00

另一个样本运行:

Enter time of arrival: 22:00
The next departure is at 22:00

更新

正如 Lino 在他的 comment 中所建议的那样,您可以按如下方式替换 if 主体:

if (remainder != 0)
nextDeparture = nextDeparture.plusMinutes(20 - remainder);

关于java - java中的时间和小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69417856/

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