public static IntervalXYDataset createDatasetBar() throws Exception {
    IntervalXYDataset dataset1 = null;
    Object[][] chart = null;
    Object[][] chart_qu = null;
    TCarRecordDao tdao = new TCarRecordDao();
    TimeSeries s1, s2;
    TimeSeriesCollection dataset = new TimeSeriesCollection();
    try {
      if (type == 0) {
        // 从DAO层获得数据,以天为统计单位,数据线以天为单位
        chart = tdao.getCarRecodebyTimearea_day(timefrom, timeto, 1);
        chart_qu = tdao.getCarRecodebyTimearea_day(timefrom, timeto, 0);
        s1 = new TimeSeries("入场柱形", Day.class);
        s2 = new TimeSeries("出场柱形", Day.class);
      } else {

        // 传进DAO层的数据是年月,数据线以月的单位
        Date date = java.sql.Date.valueOf(timefrom);
        Date date_t = java.sql.Date.valueOf(timeto);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String newdate_from = sdf.format(date);
        String timefrom_temp = newdate_from.substring(0, 7);
        String newdate_to = sdf.format(date_t);
        String timeto_temp = newdate_to.substring(0, 7);
        chart = tdao.getCarRecodebyTimearea_month(timefrom_temp, timeto_temp, 1);
        chart_qu = tdao.getCarRecodebyTimearea_month(timefrom_temp, timeto_temp, 0);
        s1 = new TimeSeries("入场柱形", Month.class);
        s2 = new TimeSeries("出场柱形", Month.class);
      }

      s1.clear();
      Date d, min_r = null, min_c = null, max_r = null, max_c = null;
      double h;
      if (chart != null && chart.length > 0) { // 数据为空的处理
        System.out.println("ff");
        min_r = (Date) chart[0][1];
        max_r = (Date) chart[0][1];
        for (int i = 0; i < chart.length; i++) {
          d = (Date) chart[i][1];
          if (d.before(min_r)) min_r = d;
          if (d.after(max_r)) max_r = d;
          h = new Double(chart[i][0].toString());
          // 添加数据,0是以天为单位,1是以月为单位
          if (type == 0) s1.add(new Day(d.getDate(), (d.getMonth() + 1), (d.getYear() + 1900)), h);
          else s1.add(new Month((d.getMonth() + 1), (d.getYear() + 1900)), h);
        }
        dataset.addSeries(s1);
      } else s1 = null;

      s2.clear();

      if (chart_qu != null && chart_qu.length > 0) {
        min_c = (Date) chart_qu[0][1];
        max_c = (Date) chart_qu[0][1];
        for (int i = 0; i < chart_qu.length; i++) {
          d = (Date) chart_qu[i][1];
          if (d.before(min_c)) min_c = d;
          if (d.after(max_c)) max_c = d;
          h = new Double(chart_qu[i][0].toString());
          if (type == 0) s2.add(new Day(d.getDate(), (d.getMonth() + 1), (d.getYear() + 1900)), h);
          else s2.add(new Month((d.getMonth() + 1), (d.getYear() + 1900)), h);
        }
        dataset.addSeries(s2);
      } else s2 = null;

      // 取得有数据的时间段的开始和结束
      if (min_c != null && min_r != null) min = min_c.before(min_r) ? min_c : min_r;
      else if (min_c != null) min = min_c;
      else if (min_r != null) min = min_r;
      else min = null;

      if (max_c != null && max_r != null) max = max_c.before(max_r) ? max_r : max_c;
      else if (max_c != null) max = max_c;
      else if (max_r != null) max = max_r;
      else max = null;

      int seriesCount = dataset.getSeriesCount(); // 一共有多少个序列,目前为一个
      for (int i = 0; i < seriesCount; i++) {
        int itemCount = dataset.getItemCount(i); // 每一个序列有多少个数据项
        for (int j = 0; j < itemCount; j++) {
          if (highValue_Y < dataset.getYValue(i, j)) { // 取第i个序列中的第j个数据项的最大值
            highValue_Y = (int) dataset.getYValue(i, j);
          }
          if (minValue_Y > dataset.getYValue(i, j)) { // 取第i个序列中的第j个数据项的最小值
            minValue_Y = (int) dataset.getYValue(i, j);
          }
        }
      }

      dataset1 = dataset;
      return dataset1;
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      return dataset1;
    }
  }