如何将一串时间与Android中的事件时间进行比较?

时间:2013-12-14 23:45:07

标签: java android jsoup

我正在尝试使用jsoup从我所在城市的交通网站上捕获特定车站的列车到达时间列表。

使用jsoup的getElementById方法,我已经能够返回一大串到达时间,如下所示:

7:00 7:30 8:00 8:30 9:00 9:30 ...

我想将这些到达时间与预定的事件进行比较。因此,对于此示例,如果用户在8:45预约,我将仅返回 到达时间8:30

我将如何做到这一点?

2 个答案:

答案 0 :(得分:1)

所以你有字符串7:00 7:30 8:00 8:30 9:00 9:30 ...

如果您必须使用字符串,我想出了以下可能有助于您达到最终结果的代码:

int apptHour = 8, apptMin = 45; // appointment is 8:45

String arrivalTime = ""; // temp var to store latest acceptable arrival time

String times = "7:00 7:30 8:00 8:30 9:00 9:30"; 
String[] time = times.split(" "); // split your string "7:00 7:30 8:00" etc.

for (String s : time) {
    String[] parts = s.split(":"); // split each time into hours and mins

    // if appointment is on the hour, remove 1 minute so that we calculate the correct arrival
    if (apptMin == 0) { apptHour--; apptMin = 59; }

    if (Integer.parseInt(parts[0]) == apptHour) {
        if (Integer.parseInt(parts[1]) < apptMin) {
            arrivalTime = parts[0] + ":" + parts[1]; 
        }
    }
}
System.out.println(arrivalTime);

因此,对于此示例,它将打印8:30作为8:45预约的建议到达时间。如果您在8:00预约,则会建议7:30作为到达时间,依此类推。

答案 1 :(得分:0)

String#split(String) String,其中包含空格分隔符,并将每个值与预约时间进行比较。