java 中的时间比较

Time comparision in java

我只是获取 HH:MM 格式的时间并检查它是否大于 9:30 然后计数 c 增加,因为 1.I 只是对单个用户输入 [=18] =] 我需要从用户那里获取多次并且 compare.If 它大于 9:30 然后增加计数 values.First 获取 n 值然后从 user.How 获取 n 时间我可以更改我的代码以获得第 n 个时间并进行比较吗?

Scanner input = new Scanner(System.in);
 String time = input.nextLine();
 System.out.println();
 int c=0;
String time2 = "9:30";
 DateFormat sdf = new SimpleDateFormat("hh:mm");
 Date d1 = sdf.parse(time);
 Date d2 = sdf.parse(time2);
 if(d1.after(d2))
 {
     c++;
}
System.out.println(c);

使用for loop遍历时间列表。还有,你不需要n值,直接用list.size()

就可以了

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html

这应该可以做到。这是一个基本实现,您可以根据自己的喜好对其进行优化。

编辑(带有解释注释):

Scanner sc = new Scanner(System.in);

// accept user input for N
System.out.println("Enter N");
int n = sc.nextInt();

String time;
int c = 0;

// store the DateFormat to compare the user inputs with
String time2 = "9:30";
DateFormat sdf = new SimpleDateFormat("hh:mm");
Date d2 = null;
try {
    d2 = sdf.parse(time2);
} catch (ParseException e) {
    e.printStackTrace();
}

// iterate for N times, asking for a user input N times.
for (int i = 0; i < n; i++) {
    // get user's input to parse and compare
    System.out.println("Enter Time");
    time = sc.next();
    Date d1 = null;
    try {
        d1 = sdf.parse(time);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    if (d1.after(d2))  {
        c++;
    }
}
System.out.println(c);

你的代码我没有改太多,只是加了一个循环,同样的事情做了N次。引用上面的评论,"loops are your friend".

希望这对您有所帮助。祝你好运。如果您有任何其他问题,请发表评论。