将给定的字符串答案与实际时间进行比较?
Compare given string answer to actual time?
public static void time (String[] args) {
DateFormat df = new SimpleDateFormat("HH:mm");
Date date = new Date();
}
}
public class test {
public static void main (String[] args) {
System.out.println("What time is it?");
int time = scan.nextInt();
if(time = date) { // I know it's not correct but you get what I want
System.out.println("That's right");
else {
....
}
}
}
}
所以我基本上希望有人通过输入实际时间来回答问题。然后我想将它与确切的当前时间进行比较,并判断它是否正确。
您可以让用户以特定格式输入日期时间,然后使用良好的旧 equals 进行比较。
例如,我在这里使用 YYYY-MM-DD HH:mm,SimpleDateFormat 帮助我解析日期。
DateFormat sdf = new SimpleDateFormat("YYYY-MM-DD HH:mm");
Date dateEntered = sdf.parse(new Scanner(System.in).nextLine());
if(dateEntered.equals(dateReference)) {
...
}
System.out.println("time " + dateEntered.toString());
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class CheckTime {
public static void main(String[] args) {
//Start your scanner
Scanner scan = new Scanner(System.in);
System.out.println("What time is it?");
DateFormat df = new SimpleDateFormat("HH:mm");
Date date = new Date();
//Read the entire line as a String
String time = scan.nextLine();
//Format your datatetim in HH:mm format and compare the strings
if (time.equals(df.format(date))) { // I know it's not correct but you get what I want
System.out.println("That's right");
} else {
System.out.println("That's wrong");
}
//Never forget to close your scanner
scan.close();
}
}
我会使用 java.time.LocalTime
class.
public static void main(String[] args) {
String suppliedTimeString = args[0];
LocalTime suppliedTime = LocalTime.parse(suppliedTimeString);
LocalTime currentTime = LocalTime.now().truncatedTo(ChronoUnit.MINUTES);
if (suppliedTime.compareTo(currentTime) == 0) {
System.out.println("That's right");
} else {
System.out.println("That's wrong");
}
}
要比较日期,您可以使用此方法:
private static boolean compareDateWithVariance(LocalDateTime date1, LocalDateTime date2, Long varianceInSeconds){
return date1.isAfter(date2.minusSeconds(varianceInSeconds)) && date1.isBefore(date2.plusSeconds(varianceInSeconds)) ;
}
这可用于解析您对 LocalDateTime 的输入:
String str = "1986-04-08 12:30";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
LocalDateTime dateTime = LocalDateTime.parse(str, formatter);
public static void time (String[] args) {
DateFormat df = new SimpleDateFormat("HH:mm");
Date date = new Date();
}
}
public class test {
public static void main (String[] args) {
System.out.println("What time is it?");
int time = scan.nextInt();
if(time = date) { // I know it's not correct but you get what I want
System.out.println("That's right");
else {
....
}
}
}
}
所以我基本上希望有人通过输入实际时间来回答问题。然后我想将它与确切的当前时间进行比较,并判断它是否正确。
您可以让用户以特定格式输入日期时间,然后使用良好的旧 equals 进行比较。 例如,我在这里使用 YYYY-MM-DD HH:mm,SimpleDateFormat 帮助我解析日期。
DateFormat sdf = new SimpleDateFormat("YYYY-MM-DD HH:mm");
Date dateEntered = sdf.parse(new Scanner(System.in).nextLine());
if(dateEntered.equals(dateReference)) {
...
}
System.out.println("time " + dateEntered.toString());
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class CheckTime {
public static void main(String[] args) {
//Start your scanner
Scanner scan = new Scanner(System.in);
System.out.println("What time is it?");
DateFormat df = new SimpleDateFormat("HH:mm");
Date date = new Date();
//Read the entire line as a String
String time = scan.nextLine();
//Format your datatetim in HH:mm format and compare the strings
if (time.equals(df.format(date))) { // I know it's not correct but you get what I want
System.out.println("That's right");
} else {
System.out.println("That's wrong");
}
//Never forget to close your scanner
scan.close();
}
}
我会使用 java.time.LocalTime
class.
public static void main(String[] args) {
String suppliedTimeString = args[0];
LocalTime suppliedTime = LocalTime.parse(suppliedTimeString);
LocalTime currentTime = LocalTime.now().truncatedTo(ChronoUnit.MINUTES);
if (suppliedTime.compareTo(currentTime) == 0) {
System.out.println("That's right");
} else {
System.out.println("That's wrong");
}
}
要比较日期,您可以使用此方法:
private static boolean compareDateWithVariance(LocalDateTime date1, LocalDateTime date2, Long varianceInSeconds){
return date1.isAfter(date2.minusSeconds(varianceInSeconds)) && date1.isBefore(date2.plusSeconds(varianceInSeconds)) ;
}
这可用于解析您对 LocalDateTime 的输入:
String str = "1986-04-08 12:30";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
LocalDateTime dateTime = LocalDateTime.parse(str, formatter);