Easter_date () in JavaScript

I am creating a calendar generator in JavaScript. I need a Unix timestamp for midnight noon for a given year. Can someone tell me how I need it (in JavaScript)?

Thanks in advance.

The PHP function can be found here: http://www.php.net/easter_date

+4
source share
4 answers

According to this : -

function Easter(Y) { var C = Math.floor(Y/100); var N = Y - 19*Math.floor(Y/19); var K = Math.floor((C - 17)/25); var I = C - Math.floor(C/4) - Math.floor((C - K)/3) + 19*N + 15; I = I - 30*Math.floor((I/30)); I = I - Math.floor(I/28)*(1 - Math.floor(I/28)*Math.floor(29/(I + 1))*Math.floor((21 - N)/11)); var J = Y + Math.floor(Y/4) + I + 2 - C + Math.floor(C/4); J = J - 7*Math.floor(J/7); var L = I - J; var M = 3 + Math.floor((L + 40)/44); var D = L + 28 - 31*Math.floor(M/4); return padout(M) + '.' + padout(D); } function padout(number) { return (number < 10) ? '0' + number : number; } 

Usage example: -

 document.write(Easter(1997)); 
+14
source

Check out the PHP source code to see how they compute them and replicate in JavaScript?

+2
source

Here is an alternative method based on an algorithm that R. Sivaraman adapted for the Gregorian calendar from an algorithm originally developed by J. Meus for the Julian calendar (see https://en.wikipedia.org/wiki/Computus ).

This seems like a more elegant and intuitive solution than the Gauss algorithm already mentioned. At the very least, it resets a few steps (only 5 points plus JS date methods ) and uses fewer variables (total 4 total plus month, date and year).

 function computus( y ) { var date, a, b, c, m, d; // Instantiate the date object. date = new Date; // Set the timestamp to midnight. date.setHours( 0, 0, 0, 0 ); // Set the year. date.setFullYear( y ); // Find the golden number. a = y % 19; // Choose which version of the algorithm to use based on the given year. b = ( 2200 <= y && y <= 2299 ) ? ( ( 11 * a ) + 4 ) % 30 : ( ( 11 * a ) + 5 ) % 30; // Determine whether or not to compensate for the previous step. c = ( ( b === 0 ) || ( b === 1 && a > 10 ) ) ? ( b + 1 ) : b; // Use c first to find the month: April or March. m = ( 1 <= c && c <= 19 ) ? 3 : 2; // Then use c to find the full moon after the northward equinox. d = ( 50 - c ) % 31; // Mark the date of that full moonβ€”the "Paschal" full moon. date.setMonth( m, d ); // Count forward the number of days until the following Sunday (Easter). date.setMonth( m, d + ( 7 - date.getDay() ) ); // Gregorian Western Easter Sunday return date; } 

For instance:

 console.log( computus( 2016 ) ); // Date 2016-03-27T05:00:00.000Z 
+1
source

Here is one implementation. I can not vouch for the accuracy.

http://users.sa.chariot.net.au/~gmarts/eastalg.htm#easterscript

0
source

All Articles