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
|
private static List<DateTime> CalculeJourFerier(int an)
{
DateTime JourAn = new DateTime(an, 1, 1);
DateTime FeteTravail = new DateTime(an, 5, 1);
DateTime Victoire1945 = new DateTime(an, 5, 8);
DateTime FeteNational = new DateTime(an, 7, 14);
DateTime Assomption = new DateTime(an, 8, 15);
DateTime Toussaint = new DateTime(an, 11, 1);
DateTime Armistice = new DateTime(an, 11, 11);
DateTime Noel = new DateTime(an, 12, 25);
double G = an % 19;
double C = Math.Floor((double)an / 100);
double H = (C - Math.Floor(C / 4) - Math.Floor((8 * C + 13) / 25) + 19 * G + 15) % 30;
double I = H - Math.Floor(H / 28) * (1 - Math.Floor(H / 28) * Math.Floor(29 / (H + 1)) * Math.Floor((double)(21 - G) / 11));
double J = (an * 1 + Math.Floor((double)an / 4) + I + 2 - C + Math.Floor(C / 4)) % 7;
double L = I - J;
int MoisPaques = (int)(3 + Math.Floor((L + 40) / 44));
int JourPaques = (int)(L + 28 - 31 * Math.Floor((double)MoisPaques / 4));
DateTime Paques = new DateTime(an, MoisPaques - 1, JourPaques);
DateTime VendrediSaint = new DateTime(an, MoisPaques, JourPaques);
DateTime LundiPaques = new DateTime(an, MoisPaques, JourPaques + 1);
DateTime Ascension = new DateTime(an, MoisPaques, JourPaques).AddDays(39);
DateTime Pentecote = new DateTime(an, MoisPaques, JourPaques).AddDays(49);
DateTime LundiPentecote = new DateTime(an, MoisPaques, JourPaques).AddDays(50); ;
List<DateTime> JourFerier = new List<DateTime>();
JourFerier.Add(JourAn);
JourFerier.Add(FeteTravail);
JourFerier.Add(Victoire1945);
JourFerier.Add(Assomption);
JourFerier.Add(FeteNational);
JourFerier.Add(Toussaint);
JourFerier.Add(Armistice);
JourFerier.Add(Noel);
JourFerier.Add(VendrediSaint);
JourFerier.Add(LundiPaques);
JourFerier.Add(Ascension);
JourFerier.Add(LundiPentecote);
return JourFerier;
} |
Partager