begin process at 2008 05 17 05:30:13
1 173 912 membres
44 nouveaux aujourd'hui
13 973 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CALCUL DES JOURS FÉRIÉS (FRANCE)


Information sur la source

Catégorie :Date/Heure Classé sous : calcul, jour, férié, calendrier Niveau : Débutant Date de création : 23/07/2005 Date de mise à jour : 23/07/2005 12:55:35 Vu : 42 995

Note :
6,67 / 10 - par 3 personnes
6,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (18)
Ajouter un commentaire et/ou une note

Description

Ce source permet de trouver les dates des jours fériés en france. les dates sont au format CF.
A vous d'utiliser  lsdateformat ou dateformat pour afficher dans le format que vous souhaitez.
Le cfdump à la fin est là juste pour afficher rapidement un résultat pour tester....

Source

  • <!--- variable pour préciser l'année... à vous d'adapter --->
  • <cfset viewyear=2005>
  • <!--- Calcul des jours feriés --->
  • <!--- Calcul du dimanche de paques --->
  • <cfscript>
  • function CalculPaques(Y) {
  • a = Y mod 19;
  • b = Int(Y/100);
  • C = Y mod 100;
  • P = Int(b / 4);
  • E = b mod 4;
  • F = Int((b + 8) / 25);
  • g = Int((b - F + 1) / 3);
  • h = (19 * a + b - P - g + 15) mod 30;
  • i = Int(C / 4);
  • K = C mod 4;
  • r = (32 + 2 * E + 2 * i - h - K) mod 7;
  • N = Int((a + 11 * h + 22 * r) / 451);
  • M = Int((h + r - 7 * N + 114) / 31);
  • D = ((h + r - 7 * N + 114) mod 31) + 1;
  • return createDate(Y,M,D);
  • }
  • </cfscript>
  • <!--- Dates fixes --->
  • <CFSET JourFerie["Jour de l'an"]=createDate(viewYear,1,1)>
  • <CFSET JourFerie["Armistice 39-45"]=createDate(viewYear,5,8)>
  • <CFSET JourFerie["Toussaint"]=createDate(viewYear,11,1)>
  • <CFSET JourFerie["Assomption"]=createDate(viewYear,8,15)>
  • <CFSET JourFerie["Fête du Travail"]=createDate(viewYear,5,1)>
  • <CFSET JourFerie["Fête nationale"]=createDate(viewYear,7,14)>
  • <CFSET JourFerie["Noël"]=createDate(viewYear,12,25)>
  • <!--- Dates dépendantes du jour de paque --->
  • <CFSET JourFerie["Lundi de Pâques"]=DateAdd("d",1,CalculPaques(viewYear))>
  • <CFSET JourFerie["Ascencion"]=DateAdd("d",39,CalculPaques(viewYear))>
  • <CFSET JourFerie["Lundi de Pentecôte"]=DateAdd("d",50,CalculPaques(viewYear))>
  • <cfdump var="#JourFerie#">
<!--- variable pour préciser l'année... à vous d'adapter --->
<cfset viewyear=2005>

<!--- Calcul des jours feriés --->

<!--- Calcul du dimanche de paques --->
<cfscript>
	function CalculPaques(Y) {
		a = Y mod 19;
		b = Int(Y/100);
		C = Y mod 100;
		P = Int(b / 4);
		E = b mod 4;
		F = Int((b + 8) / 25);
		g = Int((b - F + 1) / 3);
		h = (19 * a + b - P - g + 15) mod 30;
		i = Int(C / 4);
		K = C mod 4;
		r = (32 + 2 * E + 2 * i - h - K) mod 7;
		N = Int((a + 11 * h + 22 * r) / 451);
		M = Int((h + r - 7 * N + 114) / 31);
		D = ((h + r - 7 * N + 114) mod 31) + 1;
		return createDate(Y,M,D);
	}
</cfscript>

<!--- Dates fixes --->
<CFSET JourFerie["Jour de l'an"]=createDate(viewYear,1,1)>
<CFSET JourFerie["Armistice 39-45"]=createDate(viewYear,5,8)>
<CFSET JourFerie["Toussaint"]=createDate(viewYear,11,1)>
<CFSET JourFerie["Assomption"]=createDate(viewYear,8,15)>
<CFSET JourFerie["Fête du Travail"]=createDate(viewYear,5,1)>
<CFSET JourFerie["Fête nationale"]=createDate(viewYear,7,14)>
<CFSET JourFerie["Noël"]=createDate(viewYear,12,25)>

<!--- Dates dépendantes du jour de paque --->
<CFSET JourFerie["Lundi de Pâques"]=DateAdd("d",1,CalculPaques(viewYear))>
<CFSET JourFerie["Ascencion"]=DateAdd("d",39,CalculPaques(viewYear))>
<CFSET JourFerie["Lundi de Pentecôte"]=DateAdd("d",50,CalculPaques(viewYear))>

<cfdump var="#JourFerie#">
23 juillet 2005 12:55:35 :
-
  • signaler à un administrateur
    Commentaire de iamthib le 02/12/2005 14:27:46

    Et voila pour javascript :
    function CalculPaques(Y) {
            var a = Y-Math.floor(Y/19)*19;
            var b = parseInt(Y/100, 10);
            var C = Y-Math.floor(Y/100)*100;;
            var P = parseInt(b/4, 10);
            var E = b-Math.floor(b/4)*4;
            var F = parseInt( ((b + 8) / 25),10);
            var g = parseInt( ((b - F + 1) / 3),10);
            var h = (19 * a + b - P - g + 15)-Math.floor((19 * a + b - P - g + 15)/30)*30;
            var i = parseInt((C / 4),10);
            var K = C-Math.floor(C/4)*4;
            var r = (32 + 2 * E + 2 * i - h - K) -Math.floor((32 + 2 * E + 2 * i - h - K)/7)*7;
            var N = parseInt( ((a + 11 * h + 22 * r) / 451),10);
            var M = parseInt( ((h + r - 7 * N + 114) / 31),10);
            var D = ((h + r - 7 * N + 114)-Math.floor((h + r - 7 * N + 114)/31)*31) + 1;

    return(D+M+Y);
    }

  • signaler à un administrateur
    Commentaire de econs le 17/12/2005 15:51:58 administrateur CS

    Salut,

    Tu pourrais expliquer, en quelques termes français simples, comment tu obtiens le jour du Dimanche de Paques ? La lune intervient normalement dans ce calcul.
    Disons, qu'en regardant le calcul, c'est pas clair (de lune).

  • signaler à un administrateur
    Commentaire de bastoun le 21/12/2005 00:18:53

    pfff... ça fait un petit moment que j'ai 'créé' ce script (au moins un an avant de le poster).
    J'ai utilisé un des quelques algorithmes de calcul du dimanche de paques(il y en a plusieurs plus ou moins précis) parce que j'en avais besoin pour une appli. J'ai pas spécialement étudié l'explication (y'en a tout une tartine)

    Pour ce que j'en ai retenu, a correspond au calcul du nombre d'or dans le cycle lunaire... c'est déjà un bon début... b et c semblent correspondre au siècle et à l'année dans le siècle...
    mais bon, après... ????

  • signaler à un administrateur
    Commentaire de vincentbo le 20/03/2006 17:29:33

    Bonjour,

    vos formules de calcul, c'est bien ! Mais il faudrait en + qu'elles soient bonnes !
    Dans une formule mathématique la priorité aux parenthèses c'est important !!!
    ça serait très sympa de corriger vos formules et de faire le test du calcul sur le jour des Pâques !

    merci

  • signaler à un administrateur
    Commentaire de bastoun le 21/03/2006 17:38:01

    Quelle erreur de date obtiens-tu ?

  • signaler à un administrateur
    Commentaire de vincentbo le 21/03/2006 19:48:14

    Et bien regardez le résultat ...
    Prenez n'importe quel code JS ou autre et faite le test !
    Regardez le résultat de la fonction qui calcule le jour des Pâques !

  • signaler à un administrateur
    Commentaire de vincentbo le 21/03/2006 19:49:46

    PS: La formule du calcul du jour des Pâques circule sur le web depuis longtemps mais la première personne qui l'a diffusée n'a pas dû tester son résultat ! Alors attention ...

  • signaler à un administrateur
    Commentaire de iamthib le 22/03/2006 18:56:11

    putain je vous jure on aura tout vu !
    1°) tu crois ke j'ai mis mis un source que j'ai pas testé, que je l'ai fait juste pour tes beaux yeux ??!!!??
    2°)quand le monsieur te demande un exemple d'erreur donnes lui en un c le seul moyen autre que la demonstration de prouver tes affabulations, ca veut rien dire, je cite "Prenez n'importe quel code JS ou autre et faite le test !"
    3°) si t pa capable de mettre toi meme les parantheses passe d'abord par les tutoriaux avant de venir ici
    4°)change de pseudo

  • signaler à un administrateur
    Commentaire de vincentbo le 22/03/2006 22:47:42

    1er résultat pour le script JS lorsque l'on met l'année 2006 pour le calcul du jour des Paqûes:

        alert(CalculPaques(2006));

        => résultat = 2026 ! ERREUR

    2ème résultat après correction du retour su script:

       correction:   return(D + '/' + M + '/' + Y);

       résultat = 16/4/2006  toujours pour l'année 2006 ?

    Alors le jour des Pâques est-il le 16/4/2006 ? NON

    ALORS EN CE QUI CONCERNE LES TUTORIAUX JE LES AI TOUS FAIT !
    VOUS NON ! ALORS REPRENEZ LES TUTORIAUX ET CHANGEZ DE PSEUDO

    Cordialement Vincentbo

  • signaler à un administrateur
    Commentaire de vincentbo le 22/03/2006 22:54:11

    En ce qui concerne la formule:

            a = Y mod 19;
            b = Int(Y/100);
            C = Y mod 100;
            P = Int(b / 4);
            E = b mod 4;
            F = Int((b + 8) / 25);
            g = Int((b - F + 1) / 3);
            h = (19 * a + b - P - g + 15) mod 30;
            i = Int(C / 4);
            K = C mod 4;
            r = (32 + 2 * E + 2 * i - h - K) mod 7;
            N = Int((a + 11 * h + 22 * r) / 451);
            M = Int((h + r - 7 * N + 114) / 31);
            D = ((h + r - 7 * N + 114) mod 31) + 1;

    Lorsque je vois par ex. la ligne
    r = (32 + 2 * E + 2 * i - h - K) mod 7
    Je l'interprète en donnant la priorité à la multiplication
    ce qui est normal, donc on peut normalement la traduire par:
    r = (32 + (2 * E) + (2 * i) - h - K) mod 7
    (C'est le cas pour toute les lignes ayant une multiplication)
    Le résultat de tout çà c'est que cela ne fonctionne toujours pas !
    Donc cette formule ne fonctionne pas.
    Si l'on se penche sérieusement sur le problème je pense qu'il ne doit pas y avoir grand chose à changer, mais quoi ????? ...

  • signaler à un administrateur
    Commentaire de vincentbo le 22/03/2006 23:08:26

    Pour reprendre cette formule il faut reprendre la méthode de calcul de Christian Zeller pour les dates à partir de 1583 du calendrier Grégorien:

    Notations et représentations:
    - ssaa  ex: l'année 2006.
        ss  le siècle ou les deux premiers chifres de l'année
            ss = 20 pour l'an 2006.
        aa  l'année en cours ou les deux derniers chiffres de l'année complète, aa = 06 pour l'an 2006.
        m   le mois.

    Le calcul pour des dates depuis 1583:

      - diviser (5ss + aa) par 19, reste x;
      - donc (5ss + aa) mod 19 = x
      - à (19x + 15) ajouter le nombre g = (ss - ss/4 - ss/3);
      - diviser (19x + 15 + ss - ss/4 - ss/3) par 30
        ou (19x + 15 + ss - ss/4 - ss/3) mod 30 = y
        y est le nombre de la Pleine Lune Pascale (PLP): y indique quel jour après le 21 mars survient la PLP.
      - y ajouter (aa + aa/4 + ss/4 + 2 - 2ss), diviser par 7, reste z,
        ou (y + aa + aa/4 + ss/4 + 2 - 2ss) mod 7 = z
        
    alors le dimanche de Pâques tombe (y + 7 - z) jours après le 21 mars; i.e. le (7 - z)e jour après la pleine lune pascale.

    Il faudrait en + consulter les notes de Christian Zeller car il y a des petites subtilités.

    A suivre ...

  • signaler à un administrateur
    Commentaire de bastoun le 23/03/2006 00:37:03

    Monsieur VincetnBo, pardon, Maaaaiiiiitre.... quand est-ce paques cette année ???
    que je rigoles ???

    Tu aurais au moins pu faire le calcul avec la méthode de Zeller.. au lieu de dire des conneries...
    au moins c'est clair que s'il ya quelqu'un d'autre qui lit le poste, il comprendra comment te situer !!! -> tu essayes d'écraser les autres, sans réussir à démontrer quoi que ce soit (tu aurais du faire le calcul en plus de présenter la méthode de Zeller !!! au lieu de faire semblant en laissant les quelques lettre et de dire que paques ne tombes pas le 16/04/2006)

    le problème c'est que tu n'as rien démontré... dommage pour toi.... tu viens de te descendre tout seul...
    En plus, il n'y a pas qu'une seule méthode ni algo..

    M'enfin.. bon, je suis rassuré, c'est que si l'algorithme que j'ai présenté est faux, je ne suis pas le seul à m'être planté...
    va annoncer à l'église (chrétienne... pas orthodoxe...), au gouvernement et toues les RH que c'est pas le 16/04 cette année...

  • signaler à un administrateur
    Commentaire de bastoun le 23/03/2006 00:49:45

    Ah oui !!! e préviens le vatican que c'est pas le 16/04/2006 !!! ils ont fait une erreur !!!
    http://www.vatican.va/news_services/liturgy/calendar/ns_lit_doc_20060101_calendar_fr.html#AVRIL%202006

  • signaler à un administrateur
    Commentaire de bastoun le 23/03/2006 01:16:48

    Tu soutiens toujours que paques n'est pas le 16/04/2006 ?

    Au fait ! si tu t'étais renseigné un peu (réellement !!! au lieu de dire ceci

    'Alors le jour des Pâques est-il le 16/4/2006 ? NON
    ALORS EN CE QUI CONCERNE LES TUTORIAUX JE LES AI TOUS FAIT !
    VOUS NON ! ALORS REPRENEZ LES TUTORIAUX ET CHANGEZ DE PSEUDO')

    Le fait de lire les tutoriaux ne fait pas de toi un puit de science, encore faudrait-il que tu comprennes et que ce soit vérifié.

    Si tu parles des tutoriaux sur ce site... c'est clair que je ne les ai pas tous fait... mais bon, je sais ce que je vaux, donc c'est pas ici que j'apprend le plus de trucs...

    Si c'est pour les tutoriaux pour calculer paques... tu n'as pas du en faire beaucoup, car tu n'aurais surement pas choisi celui là (pour le présenter incomplet), ou tu aurais intégré les 'subtilités' de l'algo..(ce ne sont que quelques lignes.. fatigué par le copié collé ?) et au moins tu aurais fait le calcul manuellement pour vérifier !!! De plus tu aurais vu qu'il y en a quelques-uns... Mais bon, je suis royal, je te laisse chercher... au moins tu apprendras quelque chose par toi même...

  • signaler à un administrateur
    Commentaire de iamthib le 23/03/2006 11:37:33

    rien a ajouter :)

  • signaler à un administrateur
    Commentaire de vincentbo le 23/03/2006 14:23:59

    Faut pas prendre çà mal, c'était pas pour te démolir, ma question initiale pourquoi ça marche pas ?

    Rien à ajouter.

    PS: T'avai pas testé ton script ? ... hi hi je rigole
    sans rancune.

  • signaler à un administrateur
    Commentaire de vincentbo le 23/03/2006 14:24:11

    Faut pas prendre çà mal, c'était pas pour te démolir, ma question initiale pourquoi ça marche pas ?

    Rien à ajouter.

    PS: T'avais pas testé ton script ? ... hi hi je rigole
    sans rancune.

  • signaler à un administrateur
    Commentaire de econs le 31/03/2006 13:48:52 administrateur CS

    En conclusion,
    - le script est bon
    - Pâques, c'est dans deux semaines

    Mais comment fonctionne cet algo ? Mystère ...
    Va falloir titiller l'ami Google.

Ajouter un commentaire

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS