2011-02-07 63 views
1

我想在Java中创建一个功能,将做到以下几点:的Java日期时间段比较

  1. 与领域startDate矢量获取对象的列表,endDate
  2. 获取对象的第二列表如果对于从第一个列表(startDateendDate)的每个日期时间段,在第二个列表中都有一个对应的日期时间段,该字段为startDate,endDate 并返回truefalse

但是,第二个列表中的日期可以由连续的日期填充。 例如列表1(只有一个对象):

如果设有列表2 Object1(开始日期01/01/2010 =,结束日期= 2013年1月1日)(2个对象):Object1(开始日期= 01/01/2010,结束日期= 01/03/2010)Object2(开始日期= 01/03/2010结束日期= 2013年1月1日) 应该返回true

+5

好吧,你到目前为止尝试过什么? – aioobe 2011-02-07 18:24:10

+1

用这些关键词java +日历+日期比较开始搜索。然后回来让我们知道你有多进步。 – CoolBeans 2011-02-07 18:28:12

回答

2

这是给你一些伪代码.. 。

  1. 创建开始的第三列表/结束日期
  2. 对于第二列表中的每个的开始/结束
    • 如果在第三列表中的任何现有的日期跨重叠,延长该日期跨
    • 否则只是在第一列表中其添加到第三列表
  3. 对于每个开始/结束(A,b)
    1. 设置覆盖 =假
    2. 对于每个开始/结束(C,d)在第三列表
    3. 如果(C,d)覆盖(A,B)
      • 设置覆盖 =真
    4. 如果不是盖的,返回false
  4. ,则返回true

搞清楚 “重叠” 部分上面,你需要涵盖以下情况:

|-----| 
    |-| 

 

|-----| 
|---| 

 

|-----| 
    |---| 

 

|-| 
|-----|