Newsgroup: it.comp.java
Titolo: calcolare i giorni festivi di un anno

Avrei bisogno di avere una classe che mi calcoli i giorni festivi in
anno(es. Pasqua,Natale,ferragosto etc),in modo perpetuo;mi serve per la
creazione di un agenda in java.
Potete aiutarmi?avete qualche link sotto mano utile da darmi?
Vi ringrazio molto
Buon fine setttimana a tutti



public class Festivita {
    public static final Date ferragosto;
    public static final Date natale;
    static {
        Calendar c = Calendar.getInstance();
        GregorianCalendar g = new GregorianCalendar(2003, 12, 25);
        natale = g.getTime();
        g = new GregorianCalendar(2003, 8,15);
        ferragosto = g.getTime();
    }
}
Non so se le mensilità iniziano ad essere calcolate da 0 o 1 (basta legere
i javadoc ;)
Non so come calcolare la pasqua, sono buddista :)
Ciao
Giuseppe

Per Natale e Ferragosto è facile, cadono sempre lo stesso giorno (25 e
15) e per il giorno della settimana ti basta utilizzare la formula di
Carrol. Per Pasqua è il contrario: conosco un algoritmo che calcola il
giorno di Pasqua per ogni anno, il giorno della settimana è sempre lo
stesso.
Conosci la formula di Carrol? Se vuoi ti posto tutto. Poi te lo fai in
Java.
-- 
Pietro	- 
http://pietro81.altervista.org
Linux Registered User #304991
Powered by *Mandrake GNU/Linux 9.1*

 conosco un algoritmo che calcola il giorno di Pasqua
Idem
Ale.

 ha scritto nel messaggio
news:pan.2003.10.03....@tiscali.it...


Per la pasqua esiste la formula di K.F.Gauss
-----------------------------------------------------
   a = anno Mod 19
   b = anno \ 100
   c = anno Mod 100
   d = b \ 4
   e = b Mod 4
   f = ( b + 8 ) \ 25
   g = ( b - f + 1 ) \ 3
   h = ( 19 * a + b - d - g + 15 ) Mod 30
   i = c \ 4
   k = c Mod 4
   l = ( 32 + 2 * e + 2 * i - h - k ) Mod 7
   m = ( a + 11 * h + 22 * l ) \ 451
   p = ( h + l - 7 * m + 114 ) Mod 31
   mese = ( h + l - 7 * m + 114 ) \ 31
   giorno = p + 1
--------------------------------------------------
Se a qualcuno interessa la formula in .xls ...behhh contattatemi !
Questo un esempio fatto in php
<?
    function     pasqua_secondo_Gauss( $J){
 $J = date ("Y", mktime ());
$a = $J % 19;
  $b = $J % 4;
  $c = $J % 7;
  $m = number_format (8 * number_format ($J / 100) + 13) / 25 - 2;
  $s = number_format ($J / 100 ) - number_format ($J / 400) - 2;
  $M = (15 + $s - $m) % 30;
  $N = (6 + $s) % 7;
  $d = ($M + 19 * $a) % 30;
if ($d == 29)
  {
      $D = 28;
  }
  else if (d == 28 and $a >= 11)
  {
      $D = 27;
  }
  else
  {
      $D = $d;
  }
  $e      = (2 * $b + 4 * $c + 6 * $D + $N) % 7;
 $pasqua = mktime (0, 0, 0, 3, 21, $year_select) +
                                     (($D + $e + 1) * 86400);
return  $pasqua;
?>

Il Sat, 04 Oct 2003 13:24:42 +0200, Pietro ha scritto:
Formula di Carrol:
Considerate ogni data in quattro elementi: numero secoli, numero anni,
mese, giorno.
Fate le seguenti operazioni modulo 7.
Secolo: dividetelo per 4, sottraete il resto da 3 e moltiplicate la
differenza per 2.
Anno: sommate numero di dozzine, resto e numero di 4 contenuti nel resto.
Mese:
Gennaio=0,Feb=3,Mar=3,Apr=6,Mag=1,Giu=4,Lug=6,Ago=2,Set=5,Ott=0,Nov=3,Dic=5.
Giorno: giorno del mese.
Fate la somma e sottraete 1 se la data è gennaio o febbraio di un anno
bisestile, sempre modulo 7.
Dividete per 7 e considerate il resto che da il giorno della settimana:
Lun=1,Mar=2,Mer=3,Gio=4,Ven=5,Sab=6,Dom=0.
Tutto qui. Ce l'ho anche in Java, ma è più istruttivo se lo fate da soli,
se poi avete bisogno...
Il metodo per il giorno di Pasqua dato l'anno è:
public static String easterDate(int iYear)
    {
        int a,b,c,d,e,f,g,h,i,k,l,m,n,p;
        int iDay,iMonth;
        a=iYear % 19;
        b=(int) (iYear/100);
        c=iYear % 100;
        d=(int) (b/4);
        e=b % 4;
        f=(int) ((b+8)/25);
        g=(int) ((b-f+1)/3);
        h=(19 * a+b-d-g+15) % 30;
        i=(int) (c/4);
        k=c % 4;
        l=(32+2*e+2*i-h-k) % 7;
        m=(int) ((a+11*h-221)/451);
        n=(int)  (h+l-7*m+114) / 31;
        p=(h+l-7*m+114) % 31;
        iDay=p+1;
        iMonth=n;
        return "Il Giorno di Pasqua nell'anno "+iYear+" è "+iDay+"/"+iMonth;


         return "Il Giorno di Pasqua nell'anno "+iYear+" č
