c1lonewolf

11-22-2010, 03:20 PM

I need help fixing the calculation function below, I think that's the problem.

function easter(year) {

// feed in the year it returns the month and day of Easter using two GLOBAL variables: eastermonth and easterday

var a = year % 19;

var b = Math.floor(year/100);

var c = year % 100;

var d = Math.floor(b/4);

var e = b % 4;

var f = Math.floor((b+8) / 25);

var g = Math.floor((b-f+1) / 3);

var h = (19*a + b - d - g + 15) % 30;

var i = Math.floor(c/4);

var j = c % 4;

var k = (32 + 2*e + 2*i - h - j) % 7;

var m = Math.floor((a + 11*h + 22*k) / 451);

var month = Math.floor((h + k - 7*m + 114) / 31);

var day = ((h + k - 7*m +114) % 31) + 1;

eastermonth = month;

easterday = day;

}

This is extracted from an event calender posted to Javascript Kit.

http://www.javascriptkit.com/script/script2/eventscalendar.shtml

The problem is how it handles 'Easter'.

2002-2005-2008<< (present 20210) >> 2013-2016-2018

The forward and backward years shown above do not show 'Easter' at all. I believe it's a calculation error. I checked the original on site script to be sure I didn't mess something up, but itdoesn't work on theirs either. Can someone help me fix the equations?

Thanks in advance!

function easter(year) {

// feed in the year it returns the month and day of Easter using two GLOBAL variables: eastermonth and easterday

var a = year % 19;

var b = Math.floor(year/100);

var c = year % 100;

var d = Math.floor(b/4);

var e = b % 4;

var f = Math.floor((b+8) / 25);

var g = Math.floor((b-f+1) / 3);

var h = (19*a + b - d - g + 15) % 30;

var i = Math.floor(c/4);

var j = c % 4;

var k = (32 + 2*e + 2*i - h - j) % 7;

var m = Math.floor((a + 11*h + 22*k) / 451);

var month = Math.floor((h + k - 7*m + 114) / 31);

var day = ((h + k - 7*m +114) % 31) + 1;

eastermonth = month;

easterday = day;

}

This is extracted from an event calender posted to Javascript Kit.

http://www.javascriptkit.com/script/script2/eventscalendar.shtml

The problem is how it handles 'Easter'.

2002-2005-2008<< (present 20210) >> 2013-2016-2018

The forward and backward years shown above do not show 'Easter' at all. I believe it's a calculation error. I checked the original on site script to be sure I didn't mess something up, but itdoesn't work on theirs either. Can someone help me fix the equations?

Thanks in advance!