如何检查时间以确保它们按顺序排列?

时间:2010-10-22 16:30:58

标签: java validation iteration

我有一个JSP页面,允许用户在24小时内输入时间段,它们作为字符串存储在请求中,例如:

  • 13:00
  • 14:00
  • 15:00

在迭代这些值的同时,我需要进行检查以确保有问题的时间在上一个之后,例如上面的那个。

我正在努力避免以下情况

  1. 13:00
  2. 15:00
  3. 14:00
  4. 关于我应该如何处理的任何建议?

3 个答案:

答案 0 :(得分:2)

由于您将时间表示为字符串的方式,您可以简单地比较字符串以查看每个字符串是否大于(或等于,取决于首选项)前一个字符串。然而,这确实依赖于,例如,上午9点用前导零写为“09:00”。

答案 1 :(得分:2)

只需将其解析为时间并将其与输入的时间进行比较,如果您发现它无效,则提示用户输入有效数据。

您可以使用SimpleDateFormat类进行日期解析而不是比较两个日期。

答案 2 :(得分:1)

这是一些应该做你想做的伪代码。

List times = new ArrayList();
previousTime = time.get(0);
for(time : times)
{
    if(time < previousTime)
        return false;
    previousTime = time;
}

我们的想法是遍历这些值并检查以确保每个值都大于或等于前一次。