Calendar end = (Calendar)start.clone(); end.set(Calendar.DAY_OF_MONTH, 7);
int minute = 1; List list = fun02(start, end, minute); Conica.pl("list'size() is:" + list.size()); for(int i=0; i<list.size(); i++){ Conica.pl(new Date(((Calendar)list.get(i)).getTimeInMillis())); } }
public static List fun02(Calendar from, Calendar to, int minute) { long start = System.currentTimeMillis(); List list = new ArrayList(); Calendar calFrom = (Calendar)from.clone(); int step = 1; while(calFrom.before(to)) { if(calFrom.get(Calendar.MINUTE) == minute){ list.add(calFrom.clone()); step = 60; } calFrom.add(Calendar.SECOND, step); } long end = System.currentTimeMillis(); Conica.pl("cost :" + (end - start)); return list; }
结果一共有24组. cost :219 list'size() is:24 Tue Jun 06 13:01:00 CST 2006 Tue Jun 06 14:01:00 CST 2006 Tue Jun 06 15:01:00 CST 2006 Tue Jun 06 16:01:00 CST 2006 Tue Jun 06 17:01:00 CST 2006 Tue Jun 06 18:01:00 CST 2006 Tue Jun 06 19:01:00 CST 2006 Tue Jun 06 20:01:00 CST 2006 Tue Jun 06 21:01:00 CST 2006 Tue Jun 06 22:01:00 CST 2006 Tue Jun 06 23:01:00 CST 2006 Wed Jun 07 00:01:00 CST 2006 Wed Jun 07 01:01:00 CST 2006 Wed Jun 07 02:01:00 CST 2006 Wed Jun 07 03:01:00 CST 2006 Wed Jun 07 04:01:00 CST 2006 Wed Jun 07 05:01:00 CST 2006 Wed Jun 07 06:01:00 CST 2006 Wed Jun 07 07:01:00 CST 2006 Wed Jun 07 08:01:00 CST 2006 Wed Jun 07 09:01:00 CST 2006 Wed Jun 07 10:01:00 CST 2006 Wed Jun 07 11:01:00 CST 2006 Wed Jun 07 12:01:00 CST 2006
//do your staff
//fun01(Calendar.JUNE);
Calendar current = Calendar.getInstance();
Calendar start = (Calendar)current;
start.set(Calendar.YEAR, 2006);
start.set(Calendar.MONTH, Calendar.JUNE);
start.set(Calendar.DAY_OF_MONTH, 6);
start.set(Calendar.HOUR_OF_DAY, 12);
start.set(Calendar.MINUTE, 12);
start.set(Calendar.SECOND, 12);
Calendar end = (Calendar)start.clone();
end.set(Calendar.DAY_OF_MONTH, 7);
int minute = 1;
List list = fun02(start, end, minute);
Conica.pl("list'size() is:" + list.size());
for(int i=0; i<list.size(); i++){
Conica.pl(new Date(((Calendar)list.get(i)).getTimeInMillis()));
}
}
public static List fun02(Calendar from, Calendar to, int minute) {
long start = System.currentTimeMillis();
List list = new ArrayList();
Calendar calFrom = (Calendar)from.clone();
int step = 1;
while(calFrom.before(to)) {
if(calFrom.get(Calendar.MINUTE) == minute){
list.add(calFrom.clone());
step = 60;
}
calFrom.add(Calendar.SECOND, step);
}
long end = System.currentTimeMillis();
Conica.pl("cost :" + (end - start));
return list;
}
cost :219
list'size() is:24
Tue Jun 06 13:01:00 CST 2006
Tue Jun 06 14:01:00 CST 2006
Tue Jun 06 15:01:00 CST 2006
Tue Jun 06 16:01:00 CST 2006
Tue Jun 06 17:01:00 CST 2006
Tue Jun 06 18:01:00 CST 2006
Tue Jun 06 19:01:00 CST 2006
Tue Jun 06 20:01:00 CST 2006
Tue Jun 06 21:01:00 CST 2006
Tue Jun 06 22:01:00 CST 2006
Tue Jun 06 23:01:00 CST 2006
Wed Jun 07 00:01:00 CST 2006
Wed Jun 07 01:01:00 CST 2006
Wed Jun 07 02:01:00 CST 2006
Wed Jun 07 03:01:00 CST 2006
Wed Jun 07 04:01:00 CST 2006
Wed Jun 07 05:01:00 CST 2006
Wed Jun 07 06:01:00 CST 2006
Wed Jun 07 07:01:00 CST 2006
Wed Jun 07 08:01:00 CST 2006
Wed Jun 07 09:01:00 CST 2006
Wed Jun 07 10:01:00 CST 2006
Wed Jun 07 11:01:00 CST 2006
Wed Jun 07 12:01:00 CST 2006