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);
		}
	}