Intersult Series ist ein Werkzeug zum Generieren von Termin-Serien. Es kann aus dem
Intersult Maven Repository bezogen werden.
Hintergrund#
In Web- und anderen Anwendungen werden oft Termin-Serien benötigt, die täglich, alle paar Tage, wöchentlich, mehrfach wöchentlich, an einem bestimmten Tag im Monat oder jährlich stattfinden.
Beispiele#
Täglich#
Series series = new Series();
series.setBegin(DateUtil.TIME_FORMAT.parse("13:30"));
series.getPeriod().setBegin(DateUtil.DATE_FORMAT.parse("01.04.2010"));
series.getPeriod().setEnd(DateUtil.DATE_FORMAT.parse("03.04.2010"));
series.setPattern(Pattern.DAILY);
series.getDaily().setDay(1);
if (series.validate()) { // Prüfen ob Serie passt
for (Date date : series.iterable()) {
System.out.println(date);
}
}
Wöchentlich#
Series series = new Series();
series.setBegin(DateUtil.TIME_FORMAT.parse("13:30"));
series.getPeriod().setBegin(DateUtil.DATE_FORMAT.parse("01.04.2010"));
series.getPeriod().setEnd(DateUtil.DATE_FORMAT.parse("15.04.2010"));
series.setPattern(Pattern.WEEKLY);
series.getWeekly().setWeek(1);
series.getWeekly().getWeekdays().add(Weekday.TUESDAY);
series.getWeekly().getWeekdays().add(Weekday.THURSDAY);
if (series.validate()) { // Prüfen ob Serie passt
for (Date date : series.iterable()) {
System.out.println(date);
}
}
Monatlich#
Series series = new Series();
series.setBegin(DateUtil.TIME_FORMAT.parse("13:30"));
series.getPeriod().setBegin(DateUtil.DATE_FORMAT.parse("01.04.2010"));
series.getPeriod().setEnd(DateUtil.DATE_FORMAT.parse("15.12.2010"));
series.setPattern(Pattern.MONTHLY);
series.getMonthly().setMode(Monthly.Mode.DAY);
series.getMonthly().getMonthDay().setDay(3);
series.getMonthly().getMonthDay().setMonth(2);
if (series.validate()) { // Prüfen ob Serie passt
for (Date date : series.iterable()) {
System.out.println(date);
}
}
Wochentag im Monat#
Series series = new Series();
series.setBegin(DateUtil.TIME_FORMAT.parse("13:30"));
series.getPeriod().setBegin(DateUtil.DATE_FORMAT.parse("15.04.2010"));
series.getPeriod().setEnd(DateUtil.DATE_FORMAT.parse("15.12.2010"));
series.setPattern(Pattern.MONTHLY);
series.getMonthly().setMode(Monthly.Mode.WEEKDAY);
series.getMonthly().getMonthWeekday().setWeekOfMonth(WeekOfMonth.TWO);
series.getMonthly().getMonthWeekday().setWeekday(Weekday.WEDNESDAY);
series.getMonthly().getMonthWeekday().setMonth(2);
if (series.validate()) { // Prüfen ob Serie passt
for (Date date : series.iterable()) {
System.out.println(date);
}
}
Jährlich#
Series series = new Series();
series.setBegin(DateUtil.TIME_FORMAT.parse("13:30"));
series.getPeriod().setBegin(DateUtil.DATE_FORMAT.parse("15.04.2010"));
series.getPeriod().setEnd(DateUtil.DATE_FORMAT.parse("15.12.2012"));
series.setPattern(Pattern.YEARLY);
series.getYearly().setMode(Yearly.Mode.DAY);
series.getYearly().getYearDay().setDay(4);
series.getYearly().getYearDay().setMonth(Month.AUGUST);
if (series.validate()) { // Prüfen ob Serie passt
for (Date date : series.iterable()) {
System.out.println(date);
}
}
Jährlicher Wochentag#
Series series = new Series();
series.setBegin(DateUtil.TIME_FORMAT.parse("13:30"));
series.getPeriod().setBegin(DateUtil.DATE_FORMAT.parse("15.04.2010"));
series.getPeriod().setEnd(DateUtil.DATE_FORMAT.parse("15.12.2012"));
series.setPattern(Pattern.YEARLY);
series.getYearly().setMode(Yearly.Mode.WEEKDAY);
series.getYearly().getYearWeekday().setWeekday(Weekday.THURSDAY);
series.getYearly().getYearWeekday().setWeekOfMonth(WeekOfMonth.THREE);
series.getYearly().getYearWeekday().setMonth(Month.AUGUST);
if (series.validate()) { // Prüfen ob Serie passt
for (Date date : series.iterable()) {
System.out.println(date);
}
}