int newYear = yearsValueGenerator.generateNextValue(date.getYear());
<BUG>days = generateDays(cronDefinition, new DateTime(newYear, lowestMonth, 1, 0, 0));
</BUG>
return initDateTime(yearsValueGenerator.generateNextValue(date.getYear()), lowestMonth, days.getValues().get(0), lowestHour, lowestMinute, lowestSecond, date.getZone());
}
<BUG>if(!months.getValues().contains(date.getMonthOfYear())) {

nearestValue = months.getNextValue(date.getMonthOfYear(), 0);
</BUG>
int nextMonths = nearestValue.getValue();

int newYear = yearsValueGenerator.generateNextValue(date.getYear());
days = generateDays(cronDefinition, ZonedDateTime.of(LocalDateTime.of(newYear, lowestMonth, 1, 0, 0), date.getZone()));
return initDateTime(yearsValueGenerator.generateNextValue(date.getYear()), lowestMonth, days.getValues().get(0), lowestHour, lowestMinute, lowestSecond, date.getZone());
}
if(!months.getValues().contains(date.getMonthValue())) {
nearestValue = months.getNextValue(date.getMonthValue(), 0);
int nextMonths = nearestValue.getValue();
