将给定的字符串答案与实际时间进行比较?

问题描述 投票:0回答:1
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 {
    ....
    }
    }
    }
}

所以我基本上希望有人通过输入实际时间来回答这个问题。然后我想把它和当前的确切时间进行比较,并说它是真的还是假的。

java string time compare comparison
1个回答
0
投票
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();
    }
}


1
投票

我会使用 java.time.LocalTime 类。

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");
    }

}

1
投票

为了比较日期,你可以使用这个方法。

    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);

0
投票

你可以让用户以特定的格式输入日期时间,然后使用老式的等式来进行比较。例如,我使用的是 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());
© www.soinside.com 2019 - 2024. All rights reserved.