Originariamente inviato da guardianforce
ma leggendo la documentazione mi diceva che usava un offset di 1900.
Questo per la classe Date, non certo Calendar/GregorianCalendar. Tra l'altro con Date l'utilizzo dei singoli campi (anno, mese, ecc....) tramite costruttori e metodi get/set è deprecato e quindi da non usare.

Originariamente inviato da guardianforce
Avrei un ulteriore problema. Devo calcolare una data a partire da informazioni di questo tipo:

Es.1:
Ultima domenica di marzo
Es.2 Prima domenica di aprile
etc.

puoi consigliarmi come fare?
Esempio per il primo giorno del mese con un certo giorno della settimana:

codice:
import java.util.*;

public class Prova
{
    public static void main (String[] args)
    {
        for (int i = 0; i < 12; i++)
            System.out.println (getFirstWeekDayOfMonth (Calendar.MONDAY, i, 2007).getTime ());
    }

    public static Calendar getFirstWeekDayOfMonth (int weekDay, int month, int year)
    {
        Calendar c = new GregorianCalendar (year, month, 1);

        if (weekDay < c.get (Calendar.DAY_OF_WEEK))
            weekDay += 7;

        c.add (Calendar.DAY_OF_MONTH, weekDay - c.get (Calendar.DAY_OF_WEEK));

        return c;
    }
}
È solo questione di pochi calcoli (e logica): se il primo giorno del mese è monday (2) e voglio trovare il primo giorno con saturday (7), basta aggiungere 5 al giorno.