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".
希望这对您有所帮助。祝你好运。如果您有任何其他问题,请发表评论。
我只是获取 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".
希望这对您有所帮助。祝你好运。如果您有任何其他问题,请发表评论。