Differenze tra le versioni di "Programmazione:Java/iCal4j"

Da WikiSitech.
Vai alla navigazioneVai alla ricerca
(Creata pagina con 'La libreria iCal4J permette di gestire i calendari secondo la [http://www.faqs.org/rfcs/rfc2445.html RFC 2445].<br> Quello che segue è un esempio di come verificare quali date a...')
 
 
(2 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
 
La libreria iCal4J permette di gestire i calendari secondo la [http://www.faqs.org/rfcs/rfc2445.html RFC 2445].<br>
 
La libreria iCal4J permette di gestire i calendari secondo la [http://www.faqs.org/rfcs/rfc2445.html RFC 2445].<br>
 +
Puoi scaricare la versione aggiornata della libreria da [http://www.netsitech.com/download/ical4j-1.0.4.zip qui].<br>
 
Quello che segue è un esempio di come verificare quali date appartengono ad un set previsto dalle regole FREQ:
 
Quello che segue è un esempio di come verificare quali date appartengono ad un set previsto dalle regole FREQ:
 
<code java>
 
<code java>
Riga 9: Riga 10:
 
import net.fortuna.ical4j.model.DateList;
 
import net.fortuna.ical4j.model.DateList;
 
import net.fortuna.ical4j.model.DateTime;
 
import net.fortuna.ical4j.model.DateTime;
 +
import net.fortuna.ical4j.model.NumberList;
 
import net.fortuna.ical4j.model.Recur;
 
import net.fortuna.ical4j.model.Recur;
 +
import net.fortuna.ical4j.model.WeekDayList;
 
import net.fortuna.ical4j.model.parameter.Value;
 
import net.fortuna.ical4j.model.parameter.Value;
 
import net.fortuna.ical4j.util.TimeZones;
 
import net.fortuna.ical4j.util.TimeZones;
Riga 23: Riga 26:
 
// String srcRule = "FREQ=YEARLY;BYMONTH=4;BYDAY=SU;BYSETPOS=3"; // Evento annuale, nel mese di aprile, la 3a domenica del mese
 
// String srcRule = "FREQ=YEARLY;BYMONTH=4;BYDAY=SU;BYSETPOS=3"; // Evento annuale, nel mese di aprile, la 3a domenica del mese
 
// String srcRule = "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR"; // Evento settimanale, dal lunedì al venerdì
 
// String srcRule = "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR"; // Evento settimanale, dal lunedì al venerdì
// String srcRule = "FREQ=MONTHLY;BYMONTHDAY=-1"; // Evento mensile: ultimo giorno del mese
+
String srcRule = "FREQ=MONTHLY;BYMONTHDAY=-1"; // Evento mensile: ultimo giorno del mese
String srcRule = "FREQ=WEEKLY;BYDAY=MO;INTERVAL=2"; // Evento bimensile: ogni lunedì
+
// String srcRule = "FREQ=WEEKLY;BYDAY=MO;INTERVAL=2"; // Evento bimensile: ogni lunedì
 
try {
 
try {
 
 
Riga 30: Riga 33:
 
Recur r = new Recur(srcRule);
 
Recur r = new Recur(srcRule);
 
 
 +
System.out.println(r.getFrequency()); // Visualizza la frequenza
 +
 +
WeekDayList wList = r.getDayList(); // Estrae l'elenco dei giorni
 +
System.out.println(wList);
 +
 +
NumberList nList = r.getMonthDayList(); // Il giorno del mese (1 = primo del mese, -1 = ultimo del mese)
 +
System.out.println(nList);
 +
 
// Data di inizio periodo
 
// Data di inizio periodo
 
        Calendar queryStartDate = new
 
        Calendar queryStartDate = new

Versione attuale delle 10:10, 2 lug 2014

La libreria iCal4J permette di gestire i calendari secondo la RFC 2445.
Puoi scaricare la versione aggiornata della libreria da qui.
Quello che segue è un esempio di come verificare quali date appartengono ad un set previsto dalle regole FREQ: import java.text.ParseException; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.TimeZone;

import net.fortuna.ical4j.model.DateList; import net.fortuna.ical4j.model.DateTime; import net.fortuna.ical4j.model.NumberList; import net.fortuna.ical4j.model.Recur; import net.fortuna.ical4j.model.WeekDayList; import net.fortuna.ical4j.model.parameter.Value; import net.fortuna.ical4j.util.TimeZones;


public class test_iCal4j {

/** * @param args */ public static void main(String[] args) {

// String srcRule = "FREQ=YEARLY;BYMONTH=4;BYDAY=SU;BYSETPOS=3"; // Evento annuale, nel mese di aprile, la 3a domenica del mese // String srcRule = "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR"; // Evento settimanale, dal lunedì al venerdì String srcRule = "FREQ=MONTHLY;BYMONTHDAY=-1"; // Evento mensile: ultimo giorno del mese // String srcRule = "FREQ=WEEKLY;BYDAY=MO;INTERVAL=2"; // Evento bimensile: ogni lunedì try {

// Istanzia l'oggetto per il parse delle recursioni Recur r = new Recur(srcRule);

System.out.println(r.getFrequency()); // Visualizza la frequenza

WeekDayList wList = r.getDayList(); // Estrae l'elenco dei giorni System.out.println(wList);

NumberList nList = r.getMonthDayList(); // Il giorno del mese (1 = primo del mese, -1 = ultimo del mese) System.out.println(nList);

// Data di inizio periodo Calendar queryStartDate = new

               GregorianCalendar(TimeZone.getTimeZone(TimeZones.UTC_ID));
               queryStartDate.set(2012, Calendar.FEBRUARY, 1, 0,
               0, 0);
           // Data di fine periodo
           Calendar queryEndDate = new

GregorianCalendar(TimeZone.getTimeZone(TimeZones.UTC_ID)); queryEndDate.set(2012, Calendar.MAY, 31, 23, 59, 0);

// // Questa chiamata estrae l'elenco delle date nel periodo compatibili con la regola di recursione imposta // dateList2 viene valorizzato con le date valide

           DateList dateList2 = r.getDates(new DateTime(queryStartDate.getTime())
           							  , new DateTime(queryEndDate.getTime())
           							  , Value.DATE);
           System.out.println(dateList2);

} catch (ParseException e) { System.out.println("ERRORE!! Parsing della stringa [" + srcRule + "]"); e.printStackTrace(); }

}

}