Téléchargé 5 fois
Vote des utilisateurs
0
0
Détails
Licence : Non renseignée
Mise en ligne le 7 février 2016
Plate-forme :
Windows
Langue : Français
Référencé dans
Navigation
Date de Pâques
Date de Pâques
Programme calculant la date du dimanche de Pâques pour une année quelconque du calendrier grégorien.
Bonjour,
Je crois que j'en avais déjà parlé : attention, si on veut vraiment être exact, il faut tenir compte de l'heure, et donc du fuseau horaire pour lequel on fait la conversion.
En effet, le jour Julien commence à 12:00 GMT, donc...
Cette petite fantaisie vient du fait que le jour Julien a été défini par les astronomes, qui ne voulaient pas que la date change pendant une nuit d'observation.
Je crois que j'en avais déjà parlé : attention, si on veut vraiment être exact, il faut tenir compte de l'heure, et donc du fuseau horaire pour lequel on fait la conversion.
En effet, le jour Julien commence à 12:00 GMT, donc...
Cette petite fantaisie vient du fait que le jour Julien a été défini par les astronomes, qui ne voulaient pas que la date change pendant une nuit d'observation.
Je vous propose l'unité Fetes, qui permet de connaître la date d'une fête relative à Pâques, par exemple la date du mercredi des Cendres. Le calcul se base sur une table des dates de Pâques de 1900 à 2199.
Si vous lisez ce message avant 1900 (ce qui m'étonnerait franchement mais on ne sait jamais) ou après 2199, vous ne pouvez pas utiliser ce programme. Vous devez acheter la version "Pro".
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | program JourCendres; {$APPTYPE GUI} {$IFDEF FPC} {$MODE DELPHI} {$ENDIF} uses Windows, SysUtils, Fetes; const CENDRES = -46; var s: string; y: word; begin y := CurrentYear; s := 'Jour des Cendres'#13#13 + ChaineJour(JourRelatifPaques(y, CENDRES)); MessageBox(0, pChar(s), pChar('Année ' + IntToStr(y)), MB_OK); end. |
Salut Roland,
Je n'en mourrais pas
Puissent ces fêtes exister encore au delà de cette date.
[...] après 2199, vous ne pouvez pas utiliser ce programme.
Puissent ces fêtes exister encore au delà de cette date.
salut
un truc que j'ai dans mes carton depuis des années
un truc que j'ai dans mes carton depuis des années
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | Function LundiPaques(Iyear : Integer) : TDateTime; Var L : array[1..6] of LongInt; Lj,Lm : LongInt; begin L[1] := Iyear Mod 19; L[2] := Iyear Mod 4; L[3] := Iyear Mod 7; L[4] := (19 * L[1] + 24) Mod 30; L[5] := ((2 * L[2]) + (4 * L[3]) + (6 * L[4]) + 5) Mod 7; L[6] := 22 + L[4] + L[5]; If L[6] > 31 Then begin Lj := L[6] - 31; Lm := 4; end Else begin Lj := L[6]; Lm := 3; End; //' Lundi de Pâques = Paques + 1 jour Result := DateIncDay(EncodeDate(Iyear,Lm,Lj),1); End; Function EstFerie(QuelleDate : TDateTime) : Boolean; Var anneeDate : Integer; joursFeries : Array[1..11] of TDateTime ; i : Integer; begin anneeDate := Yearof(QuelleDate); joursFeries[1] := EncodeDate(anneeDate, 1, 1); joursFeries[2] := EncodeDate(anneeDate, 5, 1); joursFeries[3] := EncodeDate(anneeDate, 5, 8); joursFeries[4] := EncodeDate(anneeDate, 7, 14); joursFeries[5] := EncodeDate(anneeDate, 8, 15); joursFeries[6] := EncodeDate(anneeDate, 11, 1); joursFeries[7] := EncodeDate(anneeDate, 11, 11); joursFeries[8] := EncodeDate(anneeDate, 12, 25); joursFeries[9] := LundiPaques(anneeDate); joursFeries[10] := DateIncDay(joursFeries[9],38); //' Ascension = lundi de Paques + 38 joursFeries[11] := DateIncDay(joursFeries[9],49); //' Lundi Pentecôte = lundi de Paques + 49 EstFerie := False; For i := 1 To 11 do If trunc(QuelleDate) = trunc(joursFeries[i]) Then EstFerie := True End; |
Aïe !
C'est le second résultat qui est le bon, on est d'accord ?
J'ai l'impression que je ne suis pas le seul à avoir fait la confusion entre jour julien et calendrier julien (il faut dire que l'appellation a été mal choisie). La description de la fonction dans la documentation de Free Pascal contient une formule ambiguë :
Ben non, justement, ce n'est pas "as opposed to gregorian".
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | program dateutils_datetimetojuliandate; {$APPTYPE CONSOLE} uses SysUtils, DateUtils; begin WriteLn(Format( '%.1f', [DateTimeToJulianDate(EncodeDateTime(1582, 10, 15, 12, 0, 0, 0))] )); ReadLn; // 2299160,5 (FPC 3.0.0) // 2299161,0 (Delphi 7) end. |
J'ai l'impression que je ne suis pas le seul à avoir fait la confusion entre jour julien et calendrier julien (il faut dire que l'appellation a été mal choisie). La description de la fonction dans la documentation de Free Pascal contient une formule ambiguë :
Code : | Sélectionner tout |
DateTimeToJulianDate converts the AValue date/time indication to a julian (as opposed to Gregorian) date.
Je vous propose une version révisée de ce programme :
Date de Pâques
Je me suis amusé à fabriquer une documentation avec PasDoc. Il n'y a pas grand chose dedans, mais c'est très joli (et facile à faire).
Date de Pâques
Je me suis amusé à fabriquer une documentation avec PasDoc. Il n'y a pas grand chose dedans, mais c'est très joli (et facile à faire).
Bonjour,
Je vous propose un nouveau code source : Date du dimanche de Pâques
Programme calculant la date du dimanche de Pâques pour une année quelconque du calendrier grégorien.
Qu'en pensez-vous ?
Je vous propose un nouveau code source : Date du dimanche de Pâques
Programme calculant la date du dimanche de Pâques pour une année quelconque du calendrier grégorien.
Qu'en pensez-vous ?
Si ça intéresse quelqu'un j'ai le même genre de programme pour l'Epiphanie, la Chandeleur, la saint Valentin, l'Assomption, la Toussaint, Noël et le Nouvel an.
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.