Algorithm For Calculating The Date Of Easter Sunday
Join the DZone community and get the full member experience.
Join For Free
///
/// Algorithm for calculating the date of Easter Sunday
/// (Meeus/Jones/Butcher Gregorian algorithm)
/// http://en.wikipedia.org/wiki/Computus#Meeus.2FJones.2FButcher_Gregorian_algorithm
///
/// A valid Gregorian year
/// Easter Sunday
public static DateTime EasterDate(int year) {
int Y = year;
int a = Y % 19;
int b = Y / 100;
int c = Y % 100;
int d = b / 4;
int e = b % 4;
int f = (b + 8) / 25;
int g = (b - f + 1) / 3;
int h = (19 * a + b - d - g + 15) % 30;
int i = c / 4;
int k = c % 4;
int L = (32 + 2 * e + 2 * i - h - k) % 7;
int m = (a + 11 * h + 22 * L) / 451;
int month = (h + L - 7 * m + 114) / 31;
int day = ((h + L - 7 * m + 114) % 31) + 1;
DateTime dt = new DateTime(year, month, day);
return dt;
}
Easter Monday = Easter Sunday + 1
Ascension Day = Easter Sunday + 39
Pentecost Sunday = Easter Sunday + 49
Pentecost Monday = Easter Sunday + 50
Algorithm
Opinions expressed by DZone contributors are their own.
Comments