package com.sunrise.aims.util.jfreechar;import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;import com.sunrise.psmis.util.DateUtil;/**
 * MyEclipse 6.0 Created
 * 
 * @Author: daiqing
 * @DATE: 2011-3-18
 * @Com: Sunrise
 * @Des:
 */
public class TimeBuildTool { private static boolean isExistY(List<ChartDataVo> list, String time) {
for (ChartDataVo vo : list) {
if (time.equals(vo.getXData())) {
return true;
}
}
return false;
} /**
 * 用于-10000补齐时间片段
 * 
 * @param list
 * @param queryTime
 *            格式"yyyy" "yyyy-MM" "yyyy-MM-dd"
 * @return
 */
public static List<ChartDataVo> buildTime(List<ChartDataVo> list,
String queryTime) {
List<ChartDataVo> tempList = new ArrayList<ChartDataVo>();
if (queryTime.length() == 4) { setNoDate(list, tempList, 12);
list.addAll(tempList);
} else if (queryTime.length() == 7) {
Calendar cal = Calendar.getInstance();
String[] arrDate = queryTime.split("-");
cal.set(new Integer(arrDate[0]), new Integer(arrDate[1]) - 1, 1); int maxDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
setNoDate(list, tempList, maxDay);
list.addAll(tempList);
} else if (queryTime.length() == 10) { List<String> keyList = new ArrayList();
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
for (int n = 0; n < 96; n++) {
String key = DateUtil.getDateTime("HH:mm", calendar.getTime());
keyList.add(key);
calendar.add(Calendar.MINUTE, 15);
} for (String time : keyList) {
if (!isExistY(list, time)) {
ChartDataVo chartDataVo = new ChartDataVo();
chartDataVo.setSeries(list.get(0).getSeries());
chartDataVo.setXData(time);
chartDataVo.setYData(-10000);
tempList.add(chartDataVo);
}
} list.addAll(tempList);
} return list;
} private static void setNoDate(List<ChartDataVo> list,
List<ChartDataVo> tempList, int maxDay) {
for (int i = 1; i <= maxDay; i++) {
String time;
if (i < 10) {
time = "0" + i;
} else {
time = "" + i;
}
if (!isExistY(list, time)) {
ChartDataVo chartDataVo = new ChartDataVo();
chartDataVo.setSeries(list.get(0).getSeries());
chartDataVo.setXData(time);
chartDataVo.setYData(-10000);
tempList.add(chartDataVo);
}
}
} public static void main(String[] args) {
ArrayList arrayList = new ArrayList<ChartDataVo>();
ChartDataVo vo = new ChartDataVo();
vo.setSeries("dddd");
arrayList.add(vo);
buildTime(arrayList, "2011-02-11");
}
}
麻烦谁可以解释一下buildTime()这个方法,有点看不懂呀?