|
#1
|
|||
|
|||
|
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 |
|
#2
|
|||
|
|||
|
Il Fri, 03 Oct 2003 17:23:02 +0200, Emma Ronco ha scritto:
> 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 |
|
#3
|
|||
|
|||
|
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* |
|
#4
|
|||
|
|||
|
> Conosci la formula di Carrol? Se vuoi ti posto tutto.
Se posti te ne sono grato. > conosco un algoritmo che calcola il giorno di Pasqua Idem Ale. |
|
#5
|
|||
|
|||
|
Interessa anche a me la formula di Carrol!
La puoi postare? Grazie. Ciao. "Pietro" <pietroPUNTObas@tiscali.it> ha scritto nel messaggio news an.2003.10.03.16.18.51.586509@tiscali.it...> 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* > |
|
#6
|
|||
|
|||
|
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; ?> |
|
#7
|
|||
|
|||
|
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; } -- Pietro - http://pietro81.altervista.org Linux Registered User #304991 Powered by *Mandrake GNU/Linux 9.1* |
| Thread Tools | |
| Display Modes | |
|