gpt4 book ai didi

java - 在java中输入有效的时间格式

转载 作者:行者123 更新时间:2023-12-01 16:48:34 24 4
gpt4 key购买 nike

我目前担任软件测试员。我有一个测试时间格式的场景。

我想使用java程序输入有效的时间格式。我很累,但无法得到好的答案。

我想以正确的格式输入时间(hh:mm:ss)。它接受格式 HH:MM:SS 指定的时间。时间应该用冒号分隔,除了冒号之外,没有其他字符,如/,- 应该打印无效。小时范围为 0 到 23,分钟范围为 0 到 59,秒范围为 0 到 59。

并且只接受数字,如果我输入字符,它将打印无效的时间格式。

这 2 个值 20:62:00 和 20:80:00 也无效,因为分钟范围应为 0 到 59。

这是我尝试过的:

import java.util.Scanner;

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

System.out.println("Enter the number of test case");
int a = s.nextInt();
System.out.println("Enter the HH");
int h = s.nextInt();
System.out.println("Enter the MM");
int m = s.nextInt();
System.out.println("Enter the SS");
int ss = s.nextInt();
System.out.println("Time is" + h + ":" + m + ":" + ss);

if (h >= 0 && h <= 23 && m >= 0 && m <= 59 && ss >= 0 && ss <= 59) {
System.out.println("Valid test case" + h + ":" + m + ":" + ss);
} else {
System.out.println("invalid test case");
}
}
}

输出:

Enter the number of test case
4
Enter the HH
22
Enter the MM
33
Enter the SS
44
Time is22:33:44
Valid test case22:33:44

Process finished with exit code 0

这里我将测试用例编写为4,然后再次编写下一个测试用例2。并且我还需要为输入字符等无效输入编写测试用例。

最佳答案

if(0<=h<=23 ||0<=m<=59||0<=ss<=59)

不是有效的语法。您无法链接 <=运算符。

您应该一对一比较每个操作数并使用 &&比较之间的运算符。

这个

if(0<=h<=23)

应该是:

if(0<=h && h<=23)

无论如何,这不是一个直接可靠的完成任务的方法
而是使用DateTimeFormatterint ,使用String将包含具有正确格式的输入的变量:

StringBuilder dateInput = new StringBuilder();
System.out.println("Enter the number of test case");
int a = dateInput.append(s.next());

System.out.println("Enter the HH");
dateInput.append(s.next()).append(":");

System.out.println("Enter the MM");
dateInput.append(s.next()).append(":");

System.out.println("Enter the SS");
dateInput.append(s.next());

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");

try{
LocalTime time = LocalTime.parse(dateInput.toString(), formatter);
System.out.println("Valid");
}
catch(DateTimeParseException e){
System.out.println("Invalid");
}

关于java - 在java中输入有效的时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45164167/

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