java中相同的日期获得最大和最小的时间

比如有
2011-09-12 10:30:00
2011-09-12 7:30:00
2011-09-12 13:30:00
2011-09-12 17:30:00
2011-09-13 10:30:00
2011-09-13 12:30:00
2011-09-13 14:30:00
...
在这些日期里我想获得
2011-09-12 7:30:00
2011-09-12 17:30:00
2011-09-13 10:30:00
2011-09-13 14:30:00
怎么实现
如果再加一个条件,同一人的相同日期的最大最小值怎么办

第1个回答  2011-03-22
没有排序,如果你需要排序,你可以把时间取在一个数组里面再排一次序。
这个我想你自己应该可以解决吧。

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Enumeration;
import java.util.Hashtable;

public class DateTimeSequence {
public static void main(String[] args) {
try {
String[] dt = { "2011-09-12 10:30:00", "2011-09-12 07:30:00", "2011-09-12 13:30:00",
"2011-09-12 17:30:00", "2011-09-13 10:30:00", "2011-09-13 12:30:00",
"2011-09-13 14:30:00" };
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat datefmt = new SimpleDateFormat("yyyy-MM-dd");
Hashtable hs=new Hashtable();
for (int i = 0; i < dt.length; i++) {
Date datetime= fmt.parse(dt[i]);
String date=datefmt.format(datetime);
Object first=hs.get(date+"_first");
Object last=hs.get(date+"_last");
if(first==null){
hs.put(date+"_first", datetime);
}else{
if(datetime.before((Date)first)){
hs.put(date+"_first", datetime);
}
}
if(last==null){
hs.put(date+"_last", datetime);
}else{
if(datetime.after((Date)last)){
hs.put(date+"_last", datetime);
}
}
}
Enumeration em=hs.keys();
while(em.hasMoreElements()){
System.out.println(fmt.format(hs.get(em.nextElement())));
}
} catch (Exception e) {
// TODO: handle exception
}
}
}
第2个回答  2011-03-22
难道是OA打卡啥的?
不过你取的数据希望能更规范些,2011-09-12 07:30:00 位数统一些你也通过SimpleDateFormate转换, 最起码转换后就可以比大小的了

--思路是这样,具体的还需要再考虑
第3个回答  2011-03-22
相同日期的最大时间
select max(to_char(columns,'yyyy-mm-dd hh:mi:ss'))
from tablename
group by to_char(columns,'yyyymmdd')
相同日期的最小时间
select min(to_char(columns,'yyyy-mm-dd hh:mi:ss'))
from tablename
group by to_char(columns,'yyyymmdd')
第4个回答  2011-03-28
楼主告诉你一个思路,把上面的日期时间转换成整型,然后比较大小就可以了!
楼上利用数组排序也是可取的!赞同
第5个回答  2011-03-22
简单的做法是 把 2011-09-12 10:30:00 2011-09-12 7:30:00
变成 20110912103000 20110912073000
比数字大小去吧。