Я использую jFreeChart
для создания диаграммы Ганта и для добавления каждой задачи, я использую Enumeration
утилиту для получения элементов из Hashtable
. Я могу отправить год и день, но получаю исключение, когда пытаюсь отправить Месяц как параметр с этой строкой:
hT.get(obj).getFechaFin().getMonth()
, где hT
- это Hashtable
, а obj
- это индекс. Я понимаю, что getMonth()
возвращает int
. Кидает:
Exception in thread "AWT-EventQueue-0"
java.lang.IllegalArgumentException: Requires start <= end.
Затем изменил эту строку кода на Calendar.MARCH
, она сработала и сгенерировала диаграмму. И он также возвращает int
, их индексы начинаются с 0, являющегося январем первого месяца. Так почему не работает? Я использую jCalendar-1.4.jar
, чтобы легко получать даты из компонента.
//here I load the Hashtable and I generate the Chart
public static IntervalCategoryDataset createDataset(){
final TaskSeries s1 = new TaskSeries("Scheduled");
for (Enumeration e = hT.keys(); e.hasMoreElements();) {
Object obj = e.nextElement();
s1.add(new Task(hT.get(obj).getTarea().toString(),
new SimpleTimePeriod(
date(hT.get(obj).getFechaInicio().getDay(),
hT.get(obj).getFechaInicio().getMonth(),
hT.get(obj).getFechaInicio().getYear()),
date(hT.get(obj).getFechaFin().getDay(),
hT.get(obj).getFechaFin().getMonth(),
hT.get(obj).getFechaFin().getYear()))));
}
final TaskSeriesCollection collection = new TaskSeriesCollection();
collection.add(s1);
return collection;
}
//and here receives the month parameter
private static Date date(final int day, final int month, final int year){
final Calendar calendar = Calendar.getInstance();
calendar.set(year,month,day);
final Date result = calendar.getTime();
return result;
}
Мне нужно использовать hT.get(obj).getFechaFin().getMonth()
, потому что он сохраняется в двоичном файле. Есть ли способ конвертировать в Calender.MONTH
формат?