Generar ocurrencias a partir de un patrón de recurrencia

Con Aspose.Email, es posible generar ocurrencias usando un patrón de recurrencia. Este artículo explica cómo, cómo hacerlo generar la siguiente ocurrencia y obtener descripciones de ítems amigables para el usuario. Las ocurrencias a partir de un patrón de recurrencia de calendario MAPI pueden generarse usando Aspose.Email. El siguiente fragmento de código le muestra cómo generar ocurrencias a partir de patrones de recurrencia.

Calcular la próxima ocurrencia o n próximas ocurrencias

Para obtener la "siguiente" ocurrencia, use el método GenerateOccurrences con el parámetro nNextOccurrences = 1. El siguiente fragmento de código le muestra cómo generar 20 ocurrencias usando nNextOccurrences = 20. La salida del código a continuación es la siguiente:

todo:image_alt_text

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

CalendarRecurrence recurrencePattern = new CalendarRecurrence();

recurrencePattern.setStartDate(sdf.parse("1997-09-10 09:00:00"));
RecurrenceRule rule = recurrencePattern.getRRules().add();
rule.setFrequency(Frequency.Monthly);
rule.setCount(20);
rule.setInterval(18);
rule.getByMonthDay().add(new int[] { 10, 11, 12, 13, 14, 15 });
DateCollection expectedDates = recurrencePattern.generateOccurrences(20);
System.out.println("expectedDates.Count = " + expectedDates.size());
for (int i = 0; i < expectedDates.size(); i++) {
    System.out.println("DateTime = " + sdf.format(expectedDates.getItem(i)));
}

Obtener texto amigable para una recurrencia

El texto amigable para el usuario de una regla puede obtenerse usando la propiedad FriendlyText como se muestra a continuación. La salida del código será: "Recurre cada mes el 1.º y el 1.º desde el final del día(s) del mes para un máximo de 2 ocurrencias.". El siguiente fragmento de código le muestra cómo obtener el texto amigable para una recurrencia.

RecurrenceRule rule = recurrencePattern.getRRules().add();
rule.setFrequency(Frequency.Monthly);
rule.setCount(2);
rule.getByMonthDay().add(1);
rule.getByMonthDay().add(-1);
System.out.println(rule.getFriendlyText());