Esta api não está completa ainda, mas eis o básico do funcionamento:
Para não andarmos com Calendar às voltas existe a Classe estática CalendarContext nela definimos o Locale , o Calendar e o CalendarModel (já explico o que é) que vamos usar. Todas as classes deste pacote usam esse contexto internamente. Tudo isso é previamente definido com defaults locais portanto não é preciso pensar muito nessa classe.
CalendarModel é uma interface que permite saber se determinado ponto do tempo corresponde a feriado, a um fim-de-semana ou dia de trabalho
Por agora o StandardNoHolidayModel implementa isto de forma simples. Feriados não existem , dias trabalho são todos os que não são fim de semana e dias de fim de semana são sabado e domingo.
Logo estaremos implementando modelos de calendário com feriados.
CalendarDate first = new CalendarDate(2007,1,1);
// representa o dia 1 de janeiro de 2007
first .isHoliday(); // pergunta se é feriado.
A resposta será não, porque o modelo em vigor no contexto indica que nenhum dia é feriado.
Podemos criar intervalos entre datas usando Interval ou TimeInterval
no fim dá no mesmo mas TimeInterval deixa explicito o que estamos fazendo
O intervalo pode ser criado assim
TimeInterval ano2007 = first.until (new CalendarDate(2007,12,31));
Na primeira fase é isto.
