{"id":2305,"date":"2018-04-04T23:10:42","date_gmt":"2018-04-04T22:10:42","guid":{"rendered":"http:\/\/pcool.dyndns.org:8080\/statsbook\/?page_id=2305"},"modified":"2025-06-28T15:56:36","modified_gmt":"2025-06-28T14:56:36","slug":"easter","status":"publish","type":"page","link":"https:\/\/pcool.dyndns.org\/index.php\/easter\/","title":{"rendered":"Easter"},"content":{"rendered":"\n<p>&nbsp;<\/p>\n\n\n\n<p><strong>Introduction<\/strong><\/p>\n\n\n\n<p>Easter falls on the first Sunday after the first full moon&nbsp;following the beginning of the spring (<em><strong>vernal<em>&nbsp;<\/em>equinox<\/strong><\/em>) on the northern hemisphere.<\/p>\n\n\n\n<p>The equinox is the moment when the plane of the earth&#8217;s equator passes through the centre of the sun; so when the centre of the sun is directly above the earth&#8217;s equator. This happens twice a year: around 21 March and the 21 September. On the day of the equinox, day and night are roughly of equal length (12 hours) everywhere on earth (even at the north pole and south pole).<\/p>\n\n\n\n<p>The spring (vernal) equinox is a moment in time and it doesn&#8217;t fall on the same day each year. A table with the equinox times can be downloaded&nbsp;<a href=\"http:\/\/pcool.dyndns.org:8080\/DataFiles\/equinox.csv\" target=\"_blank\" rel=\"noopener\">here<\/a>&nbsp;and is shown below:<\/p>\n\n\n\n<table id=\"tablepress-42\" class=\"tablepress tablepress-id-42\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\">March Equinox<\/th><th class=\"column-2\">June Solstice<\/th><th class=\"column-3\">September Equinox<\/th><th class=\"column-4\">December Solstice<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-striping row-hover\">\n<tr class=\"row-2\">\n\t<td class=\"column-1\">20\/03\/2000@07:35 GMT<\/td><td class=\"column-2\">21\/06\/2000@02:47 BST<\/td><td class=\"column-3\">22\/09\/2000@18:27 BST<\/td><td class=\"column-4\">21\/12\/2000@13:37 GMT<\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\">20\/03\/2001@13:30 GMT<\/td><td class=\"column-2\">21\/06\/2001@08:37 BST<\/td><td class=\"column-3\">23\/09\/2001@00:04 BST<\/td><td class=\"column-4\">21\/12\/2001@19:21 GMT<\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\">20\/03\/2002@19:16 GMT<\/td><td class=\"column-2\">21\/06\/2002@14:24 BST<\/td><td class=\"column-3\">23\/09\/2002@05:55 BST<\/td><td class=\"column-4\">22\/12\/2002@01:14 GMT<\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td class=\"column-1\">21\/03\/2003@00:59 GMT<\/td><td class=\"column-2\">21\/06\/2003@20:10 BST<\/td><td class=\"column-3\">23\/09\/2003@11:46 BST<\/td><td class=\"column-4\">22\/12\/2003@07:03 GMT<\/td>\n<\/tr>\n<tr class=\"row-6\">\n\t<td class=\"column-1\">20\/03\/2004@06:48 GMT<\/td><td class=\"column-2\">21\/06\/2004@01:56 BST<\/td><td class=\"column-3\">22\/09\/2004@17:29 BST<\/td><td class=\"column-4\">21\/12\/2004@12:41 GMT<\/td>\n<\/tr>\n<tr class=\"row-7\">\n\t<td class=\"column-1\">20\/03\/2005@12:33 GMT<\/td><td class=\"column-2\">21\/06\/2005@07:46 BST<\/td><td class=\"column-3\">22\/09\/2005@23:23 BST<\/td><td class=\"column-4\">21\/12\/2005@18:34 GMT<\/td>\n<\/tr>\n<tr class=\"row-8\">\n\t<td class=\"column-1\">20\/03\/2006@18:25 GMT<\/td><td class=\"column-2\">21\/06\/2006@13:25 BST<\/td><td class=\"column-3\">23\/09\/2006@05:03 BST<\/td><td class=\"column-4\">22\/12\/2006@00:22 GMT<\/td>\n<\/tr>\n<tr class=\"row-9\">\n\t<td class=\"column-1\">21\/03\/2007@00:07 GMT<\/td><td class=\"column-2\">21\/06\/2007@19:06 BST<\/td><td class=\"column-3\">23\/09\/2007@10:51 BST<\/td><td class=\"column-4\">22\/12\/2007@06:07 GMT<\/td>\n<\/tr>\n<tr class=\"row-10\">\n\t<td class=\"column-1\">20\/03\/2008@05:48 GMT<\/td><td class=\"column-2\">21\/06\/2008@00:59 BST<\/td><td class=\"column-3\">22\/09\/2008@16:44 BST<\/td><td class=\"column-4\">21\/12\/2008@12:03 GMT<\/td>\n<\/tr>\n<tr class=\"row-11\">\n\t<td class=\"column-1\">20\/03\/2009@11:43 GMT<\/td><td class=\"column-2\">21\/06\/2009@06:45 BST<\/td><td class=\"column-3\">22\/09\/2009@22:18 BST<\/td><td class=\"column-4\">21\/12\/2009@17:46 GMT<\/td>\n<\/tr>\n<tr class=\"row-12\">\n\t<td class=\"column-1\">20\/03\/2010@17:32 GMT<\/td><td class=\"column-2\">21\/06\/2010@12:28 BST<\/td><td class=\"column-3\">23\/09\/2010@04:08 BST<\/td><td class=\"column-4\">21\/12\/2010@23:38 GMT<\/td>\n<\/tr>\n<tr class=\"row-13\">\n\t<td class=\"column-1\">20\/03\/2011@23:20 GMT<\/td><td class=\"column-2\">21\/06\/2011@18:16 BST<\/td><td class=\"column-3\">23\/09\/2011@10:04 BST<\/td><td class=\"column-4\">22\/12\/2011@05:30 GMT<\/td>\n<\/tr>\n<tr class=\"row-14\">\n\t<td class=\"column-1\">20\/03\/2012@05:14 GMT<\/td><td class=\"column-2\">21\/06\/2012@00:08 BST<\/td><td class=\"column-3\">22\/09\/2012@15:48 BST<\/td><td class=\"column-4\">21\/12\/2012@11:11 GMT<\/td>\n<\/tr>\n<tr class=\"row-15\">\n\t<td class=\"column-1\">20\/03\/2013@11:01 GMT<\/td><td class=\"column-2\">21\/06\/2013@06:03 BST<\/td><td class=\"column-3\">22\/09\/2013@21:44 BST<\/td><td class=\"column-4\">21\/12\/2013@17:11 GMT<\/td>\n<\/tr>\n<tr class=\"row-16\">\n\t<td class=\"column-1\">20\/03\/2014@16:57 GMT<\/td><td class=\"column-2\">21\/06\/2014@11:51 BST<\/td><td class=\"column-3\">23\/09\/2014@03:29 BST<\/td><td class=\"column-4\">21\/12\/2014@23:03 GMT<\/td>\n<\/tr>\n<tr class=\"row-17\">\n\t<td class=\"column-1\">20\/03\/2015@22:45 GMT<\/td><td class=\"column-2\">21\/06\/2015@17:37 BST<\/td><td class=\"column-3\">23\/09\/2015@09:20 BST<\/td><td class=\"column-4\">22\/12\/2015@04:47 GMT<\/td>\n<\/tr>\n<tr class=\"row-18\">\n\t<td class=\"column-1\">20\/03\/2016@04:30 GMT<\/td><td class=\"column-2\">20\/06\/2016@23:34 BST<\/td><td class=\"column-3\">22\/09\/2016@15:21 BST<\/td><td class=\"column-4\">21\/12\/2016@10:44 GMT<\/td>\n<\/tr>\n<tr class=\"row-19\">\n\t<td class=\"column-1\">20\/03\/2017@10:28 GMT<\/td><td class=\"column-2\">21\/06\/2017@05:24 BST<\/td><td class=\"column-3\">22\/09\/2017@21:01 BST<\/td><td class=\"column-4\">21\/12\/2017@16:27 GMT<\/td>\n<\/tr>\n<tr class=\"row-20\">\n\t<td class=\"column-1\">20\/03\/2018@16:15 GMT<\/td><td class=\"column-2\">21\/06\/2018@11:07 BST<\/td><td class=\"column-3\">23\/09\/2018@02:54 BST<\/td><td class=\"column-4\">21\/12\/2018@22:22 GMT<\/td>\n<\/tr>\n<tr class=\"row-21\">\n\t<td class=\"column-1\">20\/03\/2019@21:58 GMT<\/td><td class=\"column-2\">21\/06\/2019@16:54 BST<\/td><td class=\"column-3\">23\/09\/2019@08:50 BST<\/td><td class=\"column-4\">22\/12\/2019@04:19 GMT<\/td>\n<\/tr>\n<tr class=\"row-22\">\n\t<td class=\"column-1\">20\/03\/2020@03:49 GMT<\/td><td class=\"column-2\">20\/06\/2020@22:43 BST<\/td><td class=\"column-3\">22\/09\/2020@14:30 BST<\/td><td class=\"column-4\">21\/12\/2020@10:02 GMT<\/td>\n<\/tr>\n<tr class=\"row-23\">\n\t<td class=\"column-1\">20\/03\/2021@09:37 GMT<\/td><td class=\"column-2\">21\/06\/2021@04:32 BST<\/td><td class=\"column-3\">22\/09\/2021@20:21 BST<\/td><td class=\"column-4\">21\/12\/2021@15:59 GMT<\/td>\n<\/tr>\n<tr class=\"row-24\">\n\t<td class=\"column-1\">20\/03\/2022@15:33 GMT<\/td><td class=\"column-2\">21\/06\/2022@10:13 BST<\/td><td class=\"column-3\">23\/09\/2022@02:03 BST<\/td><td class=\"column-4\">21\/12\/2022@21:48 GMT<\/td>\n<\/tr>\n<tr class=\"row-25\">\n\t<td class=\"column-1\">20\/03\/2023@21:24 GMT<\/td><td class=\"column-2\">21\/06\/2023@15:57 BST<\/td><td class=\"column-3\">23\/09\/2023@07:50 BST<\/td><td class=\"column-4\">22\/12\/2023@03:27 GMT<\/td>\n<\/tr>\n<tr class=\"row-26\">\n\t<td class=\"column-1\">20\/03\/2024@03:06 GMT<\/td><td class=\"column-2\">20\/06\/2024@21:50 BST<\/td><td class=\"column-3\">22\/09\/2024@13:43 BST<\/td><td class=\"column-4\">21\/12\/2024@09:20 GMT<\/td>\n<\/tr>\n<tr class=\"row-27\">\n\t<td class=\"column-1\">20\/03\/2025@09:01 GMT<\/td><td class=\"column-2\">21\/06\/2025@03:42 BST<\/td><td class=\"column-3\">22\/09\/2025@19:19 BST<\/td><td class=\"column-4\">21\/12\/2025@15:03 GMT<\/td>\n<\/tr>\n<tr class=\"row-28\">\n\t<td class=\"column-1\">20\/03\/2026@14:45 GMT<\/td><td class=\"column-2\">21\/06\/2026@09:24 BST<\/td><td class=\"column-3\">23\/09\/2026@01:05 BST<\/td><td class=\"column-4\">21\/12\/2026@20:50 GMT<\/td>\n<\/tr>\n<tr class=\"row-29\">\n\t<td class=\"column-1\">20\/03\/2027@20:24 GMT<\/td><td class=\"column-2\">21\/06\/2027@15:10 BST<\/td><td class=\"column-3\">23\/09\/2027@07:01 BST<\/td><td class=\"column-4\">22\/12\/2027@02:42 GMT<\/td>\n<\/tr>\n<tr class=\"row-30\">\n\t<td class=\"column-1\">20\/03\/2028@02:17 GMT<\/td><td class=\"column-2\">20\/06\/2028@21:01 BST<\/td><td class=\"column-3\">22\/09\/2028@12:45 BST<\/td><td class=\"column-4\">21\/12\/2028@08:19 GMT<\/td>\n<\/tr>\n<tr class=\"row-31\">\n\t<td class=\"column-1\">20\/03\/2029@08:02 GMT<\/td><td class=\"column-2\">21\/06\/2029@02:48 BST<\/td><td class=\"column-3\">22\/09\/2029@18:38 BST<\/td><td class=\"column-4\">21\/12\/2029@14:14 GMT<\/td>\n<\/tr>\n<tr class=\"row-32\">\n\t<td class=\"column-1\">20\/03\/2030@13:51 GMT<\/td><td class=\"column-2\">21\/06\/2030@08:31 BST<\/td><td class=\"column-3\">23\/09\/2030@00:26 BST<\/td><td class=\"column-4\">21\/12\/2030@20:09 GMT<\/td>\n<\/tr>\n<tr class=\"row-33\">\n\t<td class=\"column-1\">20\/03\/2031@19:41 GMT<\/td><td class=\"column-2\">21\/06\/2031@14:17 BST<\/td><td class=\"column-3\">23\/09\/2031@06:15 BST<\/td><td class=\"column-4\">22\/12\/2031@01:55 GMT<\/td>\n<\/tr>\n<tr class=\"row-34\">\n\t<td class=\"column-1\">20\/03\/2032@01:21 GMT<\/td><td class=\"column-2\">20\/06\/2032@20:08 BST<\/td><td class=\"column-3\">22\/09\/2032@12:10 BST<\/td><td class=\"column-4\">21\/12\/2032@07:55 GMT<\/td>\n<\/tr>\n<tr class=\"row-35\">\n\t<td class=\"column-1\">20\/03\/2033@07:22 GMT<\/td><td class=\"column-2\">21\/06\/2033@02:01 BST<\/td><td class=\"column-3\">22\/09\/2033@17:51 BST<\/td><td class=\"column-4\">21\/12\/2033@13:45 GMT<\/td>\n<\/tr>\n<tr class=\"row-36\">\n\t<td class=\"column-1\">20\/03\/2034@13:17 GMT<\/td><td class=\"column-2\">21\/06\/2034@07:44 BST<\/td><td class=\"column-3\">22\/09\/2034@23:39 BST<\/td><td class=\"column-4\">21\/12\/2034@19:33 GMT<\/td>\n<\/tr>\n<tr class=\"row-37\">\n\t<td class=\"column-1\">20\/03\/2035@19:02 GMT<\/td><td class=\"column-2\">21\/06\/2035@13:33 BST<\/td><td class=\"column-3\">23\/09\/2035@05:38 BST<\/td><td class=\"column-4\">22\/12\/2035@01:30 GMT<\/td>\n<\/tr>\n<tr class=\"row-38\">\n\t<td class=\"column-1\">20\/03\/2036@01:02 GMT<\/td><td class=\"column-2\">20\/06\/2036@19:32 BST<\/td><td class=\"column-3\">22\/09\/2036@11:23 BST<\/td><td class=\"column-4\">21\/12\/2036@07:12 GMT<\/td>\n<\/tr>\n<tr class=\"row-39\">\n\t<td class=\"column-1\">20\/03\/2037@06:50 GMT<\/td><td class=\"column-2\">21\/06\/2037@01:22 BST<\/td><td class=\"column-3\">22\/09\/2037@17:13 BST<\/td><td class=\"column-4\">21\/12\/2037@13:07 GMT<\/td>\n<\/tr>\n<tr class=\"row-40\">\n\t<td class=\"column-1\">20\/03\/2038@12:40 GMT<\/td><td class=\"column-2\">21\/06\/2038@07:09 BST<\/td><td class=\"column-3\">22\/09\/2038@23:02 BST<\/td><td class=\"column-4\">21\/12\/2038@19:02 GMT<\/td>\n<\/tr>\n<tr class=\"row-41\">\n\t<td class=\"column-1\">20\/03\/2039@18:31 GMT<\/td><td class=\"column-2\">21\/06\/2039@12:57 BST<\/td><td class=\"column-3\">23\/09\/2039@04:49 BST<\/td><td class=\"column-4\">22\/12\/2039@00:40 GMT<\/td>\n<\/tr>\n<tr class=\"row-42\">\n\t<td class=\"column-1\">20\/03\/2040@00:11 GMT<\/td><td class=\"column-2\">20\/06\/2040@18:46 BST<\/td><td class=\"column-3\">22\/09\/2040@10:44 BST<\/td><td class=\"column-4\">21\/12\/2040@06:32 GMT<\/td>\n<\/tr>\n<tr class=\"row-43\">\n\t<td class=\"column-1\">20\/03\/2041@06:06 GMT<\/td><td class=\"column-2\">21\/06\/2041@00:35 BST<\/td><td class=\"column-3\">22\/09\/2041@16:26 BST<\/td><td class=\"column-4\">21\/12\/2041@12:18 GMT<\/td>\n<\/tr>\n<tr class=\"row-44\">\n\t<td class=\"column-1\">20\/03\/2042@11:53 GMT<\/td><td class=\"column-2\">21\/06\/2042@06:15 BST<\/td><td class=\"column-3\">22\/09\/2042@22:11 BST<\/td><td class=\"column-4\">21\/12\/2042@18:04 GMT<\/td>\n<\/tr>\n<tr class=\"row-45\">\n\t<td class=\"column-1\">20\/03\/2043@17:27 GMT<\/td><td class=\"column-2\">21\/06\/2043@11:58 BST<\/td><td class=\"column-3\">23\/09\/2043@04:06 BST<\/td><td class=\"column-4\">22\/12\/2043@00:01 GMT<\/td>\n<\/tr>\n<tr class=\"row-46\">\n\t<td class=\"column-1\">19\/03\/2044@23:20 GMT<\/td><td class=\"column-2\">20\/06\/2044@17:51 BST<\/td><td class=\"column-3\">22\/09\/2044@09:47 BST<\/td><td class=\"column-4\">21\/12\/2044@05:43 GMT<\/td>\n<\/tr>\n<tr class=\"row-47\">\n\t<td class=\"column-1\">20\/03\/2045@05:07 GMT<\/td><td class=\"column-2\">20\/06\/2045@23:33 BST<\/td><td class=\"column-3\">22\/09\/2045@15:32 BST<\/td><td class=\"column-4\">21\/12\/2045@11:35 GMT<\/td>\n<\/tr>\n<tr class=\"row-48\">\n\t<td class=\"column-1\">20\/03\/2046@10:57 GMT<\/td><td class=\"column-2\">21\/06\/2046@05:14 BST<\/td><td class=\"column-3\">22\/09\/2046@21:21 BST<\/td><td class=\"column-4\">21\/12\/2046@17:28 GMT<\/td>\n<\/tr>\n<tr class=\"row-49\">\n\t<td class=\"column-1\">20\/03\/2047@16:52 GMT<\/td><td class=\"column-2\">21\/06\/2047@11:03 BST<\/td><td class=\"column-3\">23\/09\/2047@03:08 BST<\/td><td class=\"column-4\">21\/12\/2047@23:07 GMT<\/td>\n<\/tr>\n<tr class=\"row-50\">\n\t<td class=\"column-1\">19\/03\/2048@22:33 GMT<\/td><td class=\"column-2\">20\/06\/2048@16:53 BST<\/td><td class=\"column-3\">22\/09\/2048@09:00 BST<\/td><td class=\"column-4\">21\/12\/2048@05:02 GMT<\/td>\n<\/tr>\n<tr class=\"row-51\">\n\t<td class=\"column-1\">20\/03\/2049@04:28 GMT<\/td><td class=\"column-2\">20\/06\/2049@22:47 BST<\/td><td class=\"column-3\">22\/09\/2049@14:42 BST<\/td><td class=\"column-4\">21\/12\/2049@10:52 GMT<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-42 from cache -->\n\n\n<p>The date Easter can fall&nbsp;seems dependent on two cyclic events:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Vernal Equinox<\/li>\n\n\n\n<li>Moon cycle<\/li>\n<\/ul>\n\n\n\n<p>However, although the astronomical equinox falls on different days, the ecclesiastical date is fixed by convention on <em><strong>21st March<\/strong><\/em>. Furthermore, the astronomical full moon is not exactly identical to the&nbsp;<a class=\"mw-redirect\" title=\"Paschal full moon\" href=\"https:\/\/en.wikipedia.org\/wiki\/Paschal_full_moon\" target=\"_blank\" rel=\"noopener\">Paschal full moon<\/a>&nbsp;as described in the&nbsp;ecclesiastical rules. Consequently, the earliest date Easter can fall is on the<em><strong> 22nd March<\/strong> <\/em>and latest date is the <em><strong>25th April<\/strong><\/em>.<\/p>\n\n\n\n<p>Perhaps it is expected that, in the long term, the date&nbsp;Easter falls has a uniform distribution. In other words; the proportion of Easters falling on a particular date is the same as on any other possible date (between&nbsp;22nd March and 25th April). But is the distribution uniform?<\/p>\n\n\n\n<p>This paper has two sections. In the first section, the distribution of the date Easter falls is examined using the timeDate<sup class='sup-ref-note' id='note-zotero-ref-p2305-r1-o1'><a class='sup-ref-note' href='#zotero-ref-p2305-r1'>1<\/a><\/sup> package. Subsequently, the dates are compared with dates calculated using the phases of the moon using the lunar<sup class='sup-ref-note' id='note-zotero-ref-p2305-r2-o1'><a class='sup-ref-note' href='#zotero-ref-p2305-r2'>2<\/a><\/sup> package.<\/p>\n\n\n\n<p><strong>Install Packages<\/strong><\/p>\n\n\n\n<p>The following packages should be <a href=\"https:\/\/pcool.dyndns.org\/index.php\/packages\/\" data-type=\"page\" data-id=\"22\">installed&nbsp;as described<\/a>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>dplyR package<sup class='sup-ref-note' id='note-zotero-ref-p2305-r3-o1'><a class='sup-ref-note' href='#zotero-ref-p2305-r3'>3<\/a><\/sup><em>, to manipulate data frames<\/em><\/li>\n\n\n\n<li>ggplot2 package<sup class='sup-ref-note' id='note-zotero-ref-p2305-r4-o1'><a class='sup-ref-note' href='#zotero-ref-p2305-r4'>4<\/a><\/sup><em>, to create plots<\/em><\/li>\n\n\n\n<li>lubridate package<sup class='sup-ref-note' id='note-zotero-ref-p2305-r5-o1'><a class='sup-ref-note' href='#zotero-ref-p2305-r5'>5<\/a><\/sup><em>, to work with dates<\/em><\/li>\n\n\n\n<li>timeDate package<sup class='sup-ref-note' id='note-zotero-ref-p2305-r6-o1'><a class='sup-ref-note' href='#zotero-ref-p2305-r6'>6<\/a><\/sup><em>, to extract Easter dates<\/em><\/li>\n\n\n\n<li>lunar package<sup class='sup-ref-note' id='note-zotero-ref-p2305-r7-o1'><a class='sup-ref-note' href='#zotero-ref-p2305-r7'>7<\/a><\/sup><em>, another package to calculate full moon<\/em><\/li>\n<\/ul>\n\n\n\n<p><strong>Distribution of Easter Dates<\/strong><\/p>\n\n\n\n<p><strong><em>100 Years from 2000<\/em><\/strong><\/p>\n\n\n\n<p>To find the dates of Easter from 2000 onwards is straight forward with the timeDate<sup class='sup-ref-note' id='note-zotero-ref-p2305-r8-o1'><a class='sup-ref-note' href='#zotero-ref-p2305-r8'>8<\/a><\/sup> package. Load the necessary libraries and create a vector (Easter_100) with 100 Easter dates from 2000 onwards:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code><span style=\"color: #ff0000;\"><em>library(timeDate)<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>library(dplyr)<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>library(ggplot2)<\/em><\/span>\n\n<span style=\"color: #ff0000;\"><em>Easter_100 &lt;- Easter(2000:2100) # Easter dates from 2000<\/em><\/span><\/code><\/pre>\n\n\n\n<p>Extract the year, month and day from the date and convert to a data frame called Easter_100_dates:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code><em><span style=\"color: #ff0000;\">Easter_100_year &lt;- as.numeric(strftime(Easter_100, format = '%Y'))<\/span><\/em>\n<em><span style=\"color: #ff0000;\">Easter_100_month &lt;- as.numeric(strftime(Easter_100, format = '%m'))<\/span><\/em>\n<em><span style=\"color: #ff0000;\">Easter_100_day &lt;- as.numeric(strftime(Easter_100, format = '%d'))<\/span><\/em>\n<em><span style=\"color: #ff0000;\">Easter_100_dates &lt;- data.frame(Easter_100_year, Easter_100_month, Easter_100_day)<\/span><\/em><\/code><\/pre>\n\n\n\n<p>To show the data frame:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code><span style=\"color: #ff0000;\"><em>Easter_100_dates<\/em><\/span>\n<span style=\"color: #0000ff;\"><em> Easter_100_year Easter_100_month Easter_100_day<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>1 2000 4 23<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>- - - -&nbsp;<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>101 2100 3 28<\/em><\/span><\/code><\/pre>\n\n\n\n<p>Summarise the data with dplyR<sup class='sup-ref-note' id='note-zotero-ref-p2305-r9-o1'><a class='sup-ref-note' href='#zotero-ref-p2305-r9'>9<\/a><\/sup>:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code><span style=\"color: #ff0000;\"><em>#summarise the data and calculate frequencies:<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>Easter_100_summary &lt;- Easter_100_dates %&gt;%<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>dplyr::group_by(Easter_100_month, Easter_100_day) %&gt;%<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>dplyr::tally() # function in dplyr to add up groups<\/em><\/span><\/code><\/pre>\n\n\n\n<p>Add the percentage each day is Easter Sunday and show the data:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code><span style=\"color: #ff0000;\"><em>Easter_100_summary$perc = 100 * Easter_100_summary$n \/ sum(Easter_100_summary$n) <\/em><\/span>\n<span style=\"color: #ff0000;\"><em>Easter_100_summary<\/em><\/span>\n<span style=\"color: #0000ff;\"><em># A tibble: 33 x 4<\/em><\/span>\n<span style=\"color: #0000ff;\"><em># Groups: Easter_100_month &#091;?]<\/em><\/span>\n<span style=\"color: #0000ff;\"><em> Easter_100_month Easter_100_day n perc<\/em><\/span>\n<span style=\"color: #0000ff;\"><em> &lt;dbl&gt; &lt;dbl&gt; &lt;int&gt; &lt;dbl&gt;<\/em><\/span>\n<span style=\"color: #0000ff;\"><em> 1 3. 23. 1 0.990<\/em><\/span>\n<span style=\"color: #0000ff;\"><em> 2 3. 25. 2 1.98 <\/em><\/span>\n<span style=\"color: #0000ff;\"><em> 3 3. 26. 3 2.97 <\/em><\/span>\n<span style=\"color: #0000ff;\"><em> 4 3. 27. 2 1.98 <\/em><\/span>\n<span style=\"color: #0000ff;\"><em> 5 3. 28. 3 2.97 <\/em><\/span>\n<span style=\"color: #0000ff;\"><em> 6 3. 29. 3 2.97 <\/em><\/span>\n<span style=\"color: #0000ff;\"><em> 7 3. 30. 4 3.96 <\/em><\/span>\n<span style=\"color: #0000ff;\"><em> 8 3. 31. 5 4.95 <\/em><\/span>\n<span style=\"color: #0000ff;\"><em> 9 4. 1. 3 2.97 <\/em><\/span>\n<span style=\"color: #0000ff;\"><em>10 4. 2. 2 1.98 <\/em><\/span>\n<span style=\"color: #0000ff;\"><em># ... with 23 more rows<\/em><\/span><\/code><\/pre>\n\n\n\n<p>Create a vector for the x axis, to make the plot that follows more readable:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code><span style=\"color: #ff0000;\"><em># Create a vector for the x-axis labels, to make the axis more readable: <\/em><\/span>\n<span style=\"color: #ff0000;\"><em>axis_label &lt;- c('22.3' = '22', '23.3' = '23', '24.3' = '24', '25.3' = '25', '26.3' = '26', '27.3' = '27', '28.3' = '28', '29.3' = '29', '30.3' = '30', '31.3' = '31', '1.4' = '1', '2.4' = '2', '3.4' = '3', '4.4' = '4', '5.4' = '5', '6.4' = '6', '7.4' = '7', '8.4' = '8', '9.4' = '9', '10.4' = '10', '11.4' = '11', '12.4' = '12', '13.4' = '13', '14.4' = '14', '15.4' = '15', '16.4' = '16', '17.4' = '17', '18.4' = '18', '19.4' = '19', '20.4' = '20', '21.4' = '21', '22.4' = '22', '23.4' = '23', '24.4' = '24', '25.4' = '25' )<\/em><\/span><\/code><\/pre>\n\n\n\n<p>And create a plot with ggplot2<sup class='sup-ref-note' id='note-zotero-ref-p2305-r10-o1'><a class='sup-ref-note' href='#zotero-ref-p2305-r10'>10<\/a><\/sup>:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code><em><span style=\"color: #ff0000;\">plot_100 &lt;- Easter_100_summary %&gt;%<\/span><\/em>\n<em><span style=\"color: #ff0000;\">ggplot() +<\/span><\/em>\n<em><span style=\"color: #ff0000;\">geom_bar(aes(x = interaction(Easter_100_day, Easter_100_month), y = perc ), stat = 'identity', colour = 'black', fill = 'blue') +<\/span><\/em>\n<em><span style=\"color: #ff0000;\">ylab('Proportion of Easter Sunday on day &#091;%]') +<\/span><\/em>\n<em><span style=\"color: #ff0000;\">ggtitle(label = 'Easter between 2000 and 2100') +<\/span><\/em>\n<em><span style=\"color: #ff0000;\">scale_x_discrete('Date', labels = axis_label) +<\/span><\/em>\n<em><span style=\"color: #ff0000;\">geom_text(label = 'March', x = 4, y = -0.1) +<\/span><\/em>\n<em><span style=\"color: #ff0000;\">geom_text(label = 'April', x = 10, y = -0.1) +<\/span><\/em>\n<em><span style=\"color: #ff0000;\">theme_bw() <\/span><\/em>\n\n<em><span style=\"color: #ff0000;\">dev.new()<\/span><\/em>\n<em><span style=\"color: #ff0000;\">plot_100<\/span><\/em><\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"719\" src=\"https:\/\/pcool.dyndns.org\/wp-content\/uploads\/2025\/06\/Easter_dates_1-1024x719.png\" alt=\"\" class=\"wp-image-3115\" srcset=\"https:\/\/pcool.dyndns.org\/wp-content\/uploads\/2025\/06\/Easter_dates_1-1024x719.png 1024w, https:\/\/pcool.dyndns.org\/wp-content\/uploads\/2025\/06\/Easter_dates_1-300x211.png 300w, https:\/\/pcool.dyndns.org\/wp-content\/uploads\/2025\/06\/Easter_dates_1-768x539.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The plot clearly shows that the distribution of Easter dates is not uniform. The increase in proportion of Easters between 23rd March and 26th March as well as the decrease in proportion of Easters between 22nd April and 25th April&nbsp;are appreciated&nbsp;as they are at the beginning and end of the plot.&nbsp;However, the&nbsp;31st March, 15th April and 20 April are more common Easter dates than other dates and 27th March, 2nd April, 7th April and 13th April are less common dates for Easter.<\/p>\n\n\n\n<p><em><strong>1000 Years from beginning Gregorian Calendar<\/strong><\/em><\/p>\n\n\n\n<p>Perhaps the unexpected distribution in dates&nbsp;is due to a relatively small number of dates? Similarly, it is easy to look from the beginning of the Gregorian calendar (1583) to the year 3000:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code><em><span style=\"color: #ff0000;\"># Easter from beginning Gregorian calendar to year 3000<\/span><\/em>\n<em><span style=\"color: #ff0000;\">Easter_3000 &lt;- Easter(1583:3000)&nbsp;<\/span><\/em>\n<em><span style=\"color: #ff0000;\">Easter_3000_year &lt;- as.numeric(strftime(Easter_3000, format = '%Y'))<\/span><\/em>\n<em><span style=\"color: #ff0000;\">Easter_3000_month &lt;- as.numeric(strftime(Easter_3000, format = '%m'))<\/span><\/em>\n<em><span style=\"color: #ff0000;\">Easter_3000_day &lt;- as.numeric(strftime(Easter_3000, format = '%d'))<\/span><\/em>\n<em><span style=\"color: #ff0000;\">Easter_3000_dates &lt;- data.frame(Easter_3000_year, Easter_3000_month, Easter_3000_day)<\/span><\/em>\n\n<em><span style=\"color: #ff0000;\">#summarise the data and calculate frequencies:<\/span><\/em>\n<em><span style=\"color: #ff0000;\">Easter_3000_summary &lt;- Easter_3000_dates %&gt;%<\/span><\/em>\n<em><span style=\"color: #ff0000;\">dplyr::group_by(Easter_3000_month, Easter_3000_day) %&gt;%<\/span><\/em>\n<em><span style=\"color: #ff0000;\">dplyr::tally() # function in dplyr to add up groups <\/span><\/em>\n<em><span style=\"color: #ff0000;\">Easter_3000_summary$perc = 100 * Easter_3000_summary$n \/ sum(Easter_3000_summary$n) # calculate percentage<\/span><\/em>\n\n<em><span style=\"color: #ff0000;\">plot_3000 &lt;- Easter_3000_summary %&gt;%<\/span><\/em>\n<em><span style=\"color: #ff0000;\">ggplot() +<\/span><\/em>\n<em><span style=\"color: #ff0000;\">geom_bar(aes(x = interaction(Easter_3000_day, Easter_3000_month), y = perc), stat = 'identity', colour = 'black', fill = 'red') +<\/span><\/em>\n<em><span style=\"color: #ff0000;\">ylab('Proportion of Easter Sunday on day &#091;%]') +<\/span><\/em>\n<em><span style=\"color: #ff0000;\">ggtitle(label = 'Easter between 1583 and 3000') +<\/span><\/em>\n<em><span style=\"color: #ff0000;\">scale_x_discrete('Date', labels = axis_label) +<\/span><\/em>\n<em><span style=\"color: #ff0000;\">geom_text(label = 'March', x = 4, y = -0.1) +<\/span><\/em>\n<em><span style=\"color: #ff0000;\">geom_text(label = 'April', x = 12, y = -0.1) +<\/span><\/em>\n<em><span style=\"color: #ff0000;\">theme_bw()<\/span><\/em>\n\n<em><span style=\"color: #ff0000;\">dev.new()<\/span><\/em>\n<em><span style=\"color: #ff0000;\">plot_3000<\/span><\/em>\n<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2384\" height=\"1550\" src=\"https:\/\/pcool.dyndns.org\/wp-content\/uploads\/2025\/06\/Easter_dates_2.png\" alt=\"\" class=\"wp-image-3121\" srcset=\"https:\/\/pcool.dyndns.org\/wp-content\/uploads\/2025\/06\/Easter_dates_2.png 2384w, https:\/\/pcool.dyndns.org\/wp-content\/uploads\/2025\/06\/Easter_dates_2-300x195.png 300w\" sizes=\"auto, (max-width: 2384px) 100vw, 2384px\" \/><\/figure>\n\n\n\n<p>Still not a uniform distribution! Again, there are dips in the distribution, similarly to the previous plot. Perhaps we should look at even more dates?<\/p>\n\n\n\n<p><em><strong>10,000 Years from beginning Gregorian Calendar<\/strong><\/em><\/p>\n\n\n\n<p>Similarly, look at 10,000 years; from the&nbsp;beginning of the Gregorian calendar to the year 10,000:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code><span style=\"color: #ff0000;\"><em># Easter&nbsp;from the beginning of the Gregorian calendar to the year 9999<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>Easter_10k &lt;- Easter(1583:9999)&nbsp;<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>Easter_10k_year &lt;- as.numeric(strftime(Easter_10k, format = '%Y'))<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>Easter_10k_month &lt;- as.numeric(strftime(Easter_10k, format = '%m'))<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>Easter_10k_day &lt;- as.numeric(strftime(Easter_10k, format = '%d'))<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>Easter_10k_dates &lt;- data.frame(Easter_10k_year, Easter_10k_month, Easter_10k_day)<\/em><\/span>\n\n<span style=\"color: #ff0000;\"><em>#summarise the data and calculate frequencies:<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>Easter_10k_summary &lt;- Easter_10k_dates %&gt;%<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>dplyr::group_by(Easter_10k_month, Easter_10k_day) %&gt;%<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>dplyr::tally() # function in dplyr to add up groups <\/em><\/span>\n<span style=\"color: #ff0000;\"><em>Easter_10k_summary$perc &lt;- 100 * Easter_10k_summary$n \/ sum(Easter_10k_summary$n) # calculate percentage <\/em><\/span>\n\n<span style=\"color: #ff0000;\"><em>plot_10k &lt;- Easter_10k_summary %&gt;%<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>ggplot() +<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>geom_bar(aes(x = interaction(Easter_10k_day, Easter_10k_month), y = perc), stat = 'identity', colour = 'black', fill = 'green') +<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>ylab('Proportion of Easter Sunday on day &#091;%]') +<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>ggtitle(label = 'Easter between 1583 and 9999') +<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>scale_x_discrete('Date', labels = axis_label) +<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>geom_text(label = 'March', x = 4, y = -0.1) +<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>geom_text(label = 'April', x = 12, y = -0.1) +<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>theme_bw() <\/em><\/span>\n\n<span style=\"color: #ff0000;\"><em>dev.new()<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>plot_10k&nbsp;<\/em><\/span><\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2418\" height=\"1566\" src=\"https:\/\/pcool.dyndns.org\/wp-content\/uploads\/2025\/06\/Easter_dates_3.png\" alt=\"\" class=\"wp-image-3127\" srcset=\"https:\/\/pcool.dyndns.org\/wp-content\/uploads\/2025\/06\/Easter_dates_3.png 2418w, https:\/\/pcool.dyndns.org\/wp-content\/uploads\/2025\/06\/Easter_dates_3-300x194.png 300w\" sizes=\"auto, (max-width: 2418px) 100vw, 2418px\" \/><\/figure>\n\n\n\n<p>Perhaps the distribution is just not uniform? Although better, there are still cyclic dips in the plot and 19th April is the most common date for Easter Sunday.<\/p>\n\n\n\n<p><strong>Conclusion<\/strong><\/p>\n\n\n\n<p>The distribution of the Easter dates is not uniform and 19th April is the most common Easter date.<\/p>\n\n\n\n<p><strong>Phases of the Moon<\/strong><\/p>\n\n\n\n<p>Above, the Easter dates were extracted from the timeDate package<sup class='sup-ref-note' id='note-zotero-ref-p2305-r11-o1'><a class='sup-ref-note' href='#zotero-ref-p2305-r11'>11<\/a><\/sup>. Next, this Easter date is compared to the date calculated&nbsp;with the lunar package<sup class='sup-ref-note' id='note-zotero-ref-p2305-r12-o1'><a class='sup-ref-note' href='#zotero-ref-p2305-r12'>12<\/a><\/sup>.<\/p>\n\n\n\n<p>First load the packages:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code><span style=\"color: #ff0000;\"><em>library(dplyr)<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>library(ggplot2)<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>library(lubridate)<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>library(timeDate)<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>library(lunar)<\/em><\/span><\/code><\/pre>\n\n\n\n<p>The moon completes its orbit around the earth every 27.3 days (sidereal month). However, due to the motion of the earth around the sun, it takes longer for the moon to take the same relative position to earth (synodic month). A synodic month is on average 29.5 days, but subject to variation due to complex orbital effects.<\/p>\n\n\n\n<p>First create a vector with <strong>possible dates for a full moon<\/strong> on or after 21st March for the next 101 years. The loop below runs 101 times (from 0 to 100) and should create a vector of 3030 dates:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code><em><span style=\"color: #ff0000;\">dates &lt;- NULL # create a null vector to append dates to.<\/span><\/em>\n<em><span style=\"color: #ff0000;\">for (n in 0:100){<\/span><\/em>\n<em><span style=\"color: #ff0000;\">start &lt;- as.Date(\"2000-03-21\") + years(n)<\/span><\/em>\n<em><span style=\"color: #ff0000;\">date &lt;- seq(start, by = \"day\", length.out = 30)<\/span><\/em>\n<em><span style=\"color: #ff0000;\">dates &lt;- append(dates, date)<\/span><\/em>\n<em><span style=\"color: #ff0000;\">}<\/span><\/em><\/code><\/pre>\n\n\n\n<p>Examine the length (should be 3030), head and tail of the vector:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code><span style=\"color: #ff0000;\"><em>length(dates)<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>&#091;1] 3030<\/em><\/span>\n<span style=\"color: #ff0000;\"><em># show the head and tail of the vector<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>head(dates)<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>&#091;1] \"2000-03-21\" \"2000-03-22\" \"2000-03-23\" \"2000-03-24\" \"2000-03-25\" \"2000-03-26\"<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>tail(dates)<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>&#091;1] \"2100-04-14\" \"2100-04-15\" \"2100-04-16\" \"2100-04-17\" \"2100-04-18\" \"2100-04-19\"<\/em><\/span><\/code><\/pre>\n\n\n\n<p>Convert the dates vector to a data frame (called Easters) and add the date of Easter (as calculated with the Easter function in the timeDate<sup class='sup-ref-note' id='note-zotero-ref-p2305-r13-o1'><a class='sup-ref-note' href='#zotero-ref-p2305-r13'>13<\/a><\/sup> package) to the data frame. The Easter function returns a timeDate object that should be converted to a date for subsequent manipulation:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code><span style=\"color: #ff0000;\"><em># convert the dates vector to a data frame called Easters:<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>Easters &lt;- data.frame(\"Date\" = dates)<\/em><\/span>\n<span style=\"color: #ff0000;\"><em># find the date Easter falls within that year <\/em><\/span>\n<span style=\"color: #ff0000;\"><em># should be the same for all 30 days within a given year<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>Easters$Easter &lt;- Easter(year(Easters$Date))<\/em><\/span>\n<span style=\"color: #ff0000;\"><em># the Easter date is returned as a dateTime object; convert to a date:<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>Easters$Easter &lt;- as.Date(Easters$Easter)<\/em><\/span><\/code><\/pre>\n\n\n\n<p>Extract the year, month, day, week-day name and week-day number from the date. This is required to calculate the Julian date:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code><span style=\"color: #ff0000;\"><em>Easters$Year &lt;- year(Easters$Date)<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>Easters$Month &lt;- month(Easters$Date)<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>Easters$Day &lt;- day(Easters$Date)<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>Easters$Week_day &lt;- weekdays(Easters$Date)<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>Easters$Week_day_number &lt;- as.numeric(format(Easters$Date, \"%w\"))<\/em><\/span><\/code><\/pre>\n\n\n\n<p class=\"is-style-text-annotation is-style-text-annotation--1\"><em>Week-day numbers are counted from Sunday; with Sunday = 0 and Monday = 1.<\/em><\/p>\n\n\n\n<p>What would the day of Easter be if the date was a full moon? Easter would be the next Sunday and Sunday a week later if the full moon is on a Sunday.<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code><em><span style=\"color: #ff0000;\"># if on a Sunday, a week later, otherwise the next Sunday:<\/span><\/em>\n<em><span style=\"color: #ff0000;\">Easters$Easter_calc &lt;- Easters$Date + days(7 - Easters$Week_day_number)<\/span><\/em><\/code><\/pre>\n\n\n\n<p>By convention, Easter can&#8217;t fall on the 21st March. Consequently if full moon is on the 21st March, Easter will be&nbsp;four weeks (28 days) later:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code><em><span style=\"color: #ff0000;\">Easters$Easter_calc &lt;- if_else(Easters$Month == 3 &amp; Easters$Day == 21, Easters$Easter_calc + 28, Easters$Easter_calc)<\/span><\/em><\/code><\/pre>\n\n\n\n<p class=\"p1\">What would the difference between the calculated and actual Easter date be?<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code><em><span style=\"color: #ff0000;\">Easters$Easter_diff &lt;- Easters$Easter - Easters$Easter_calc<\/span><\/em>\n<em><mark style=\"background-color:rgba(0, 0, 0, 0);color:#f40606\" class=\"has-inline-color\">summary(Easters$Easter_diff)<\/mark>\n<mark style=\"background-color:rgba(0, 0, 0, 0);color:#0115f6\" class=\"has-inline-color\">Time differences in days\n    Min.  1st Qu.   Median     Mean  3rd Qu.     Max. \n-28.0000  -7.0000   0.0000  -0.3142   7.0000  28.0000 <\/mark><\/em><\/code><\/pre>\n\n\n\n<p>Examine the data frame:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code><em><mark style=\"background-color:rgba(0, 0, 0, 0);color:#fa002b\" class=\"has-inline-color\">str(Easters)<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0);color:#0701f9\" class=\"has-inline-color\">\n'data.frame':\t3030 obs. of  9 variables:\n $ Date           : Date, format: \"2000-03-21\" \"2000-03-22\" \"2000-03-23\" \"2000-03-24\" ...\n $ Easter         : Date, format: \"2000-04-23\" \"2000-04-23\" \"2000-04-23\" \"2000-04-23\" ...\n $ Year           : num  2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 ...\n $ Month          : num  3 3 3 3 3 3 3 3 3 3 ...\n $ Day            : int  21 22 23 24 25 26 27 28 29 30 ...\n $ Week_day       : chr  \"Tuesday\" \"Wednesday\" \"Thursday\" \"Friday\" ...\n $ Week_day_number: num  2 3 4 5 6 0 1 2 3 4 ...\n $ Easter_calc    : Date, format: \"2000-04-23\" \"2000-03-26\" \"2000-03-26\" \"2000-03-26\" ...\n $ Easter_diff    : 'difftime' num  0 28 28 28 ...\n  ..- attr(*, \"control\")= Named chr &#091;1:2] \"trunc\" \"GMT\"\n  .. ..- attr(*, \"names\")= chr &#091;1:2] \"method\" \"FinCenter\"\n  ..- attr(*, \"units\")= chr \"days\"\n<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0);color:#fa0011\" class=\"has-inline-color\">head(Easters)<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0);color:#0701f9\" class=\"has-inline-color\">\n        Date     Easter Year Month Day  Week_day Week_day_number Easter_calc Easter_diff\n1 2000-03-21 2000-04-23 2000     3  21   Tuesday               2  2000-04-23      0 days\n2 2000-03-22 2000-04-23 2000     3  22 Wednesday               3  2000-03-26     28 days\n3 2000-03-23 2000-04-23 2000     3  23  Thursday               4  2000-03-26     28 days\n4 2000-03-24 2000-04-23 2000     3  24    Friday               5  2000-03-26     28 days\n5 2000-03-25 2000-04-23 2000     3  25  Saturday               6  2000-03-26     28 days\n6 2000-03-26 2000-04-23 2000     3  26    Sunday               0  2000-04-02     21 days\n<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0);color:#fa0022\" class=\"has-inline-color\">tail(Easters)<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0);color:#0701f9\" class=\"has-inline-color\">\n           Date     Easter Year Month Day  Week_day Week_day_number Easter_calc Easter_diff\n3025 2100-04-14 2100-03-28 2100     4  14 Wednesday               3  2100-04-18    -21 days\n3026 2100-04-15 2100-03-28 2100     4  15  Thursday               4  2100-04-18    -21 days\n3027 2100-04-16 2100-03-28 2100     4  16    Friday               5  2100-04-18    -21 days\n3028 2100-04-17 2100-03-28 2100     4  17  Saturday               6  2100-04-18    -21 days\n3029 2100-04-18 2100-03-28 2100     4  18    Sunday               0  2100-04-25    -28 days\n3030 2100-04-19 2100-03-28 2100     4  19    Monday               1  2100-04-25    -28 days<\/mark><\/em>\n<\/code><\/pre>\n\n\n\n<p>When is full moon? This can be calculated with the lunar package<sup class='sup-ref-note' id='note-zotero-ref-p2305-r14-o1'><a class='sup-ref-note' href='#zotero-ref-p2305-r14'>14<\/a><\/sup>. The illumination of the moon can be shifted to midnight (12 hours) to calculate the lunar illumination at the beginning of the day.<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code><span style=\"color: #ff0000;\"><em># calculate the illumination of the moon, shifted to midnight (by 12 hours)<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>Easters$Phase_lunar &lt;- lunar.illumination(Easters$Date, shift = -12)<\/em><\/span><\/code><\/pre>\n\n\n\n<p>Find the full moons as calculated by the lunar<sup class='sup-ref-note' id='note-zotero-ref-p2305-r15-o1'><a class='sup-ref-note' href='#zotero-ref-p2305-r15'>15<\/a><\/sup> package and save the result in a new data frame called full_moons_lunar:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code><span style=\"color: #ff0000;\"><em>full_moons_lunar &lt;- Easters %&gt;%<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>dplyr::group_by(Year) %&gt;%<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>dplyr::filter(Phase_lunar == max(Phase_lunar))<\/em><\/span><\/code><\/pre>\n\n\n\n<p>Have a look at the data frame:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code><em><mark style=\"background-color:rgba(0, 0, 0, 0);color:#f2051d\" class=\"has-inline-color\">head(full_moons_lunar)<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0);color:#3b05f3\" class=\"has-inline-color\">\n# A tibble: 6 \u00d7 10\n# Groups:   Year &#091;6]\n  Date       Easter      Year Month   Day Week_day  Week_day_number Easter_calc Easter_diff Phase_lunar\n  &lt;date&gt;     &lt;date&gt;     &lt;dbl&gt; &lt;dbl&gt; &lt;int&gt; &lt;chr&gt;               &lt;dbl&gt; &lt;date&gt;      &lt;drtn&gt;            &lt;dbl&gt;\n1 2000-04-19 2000-04-23  2000     4    19 Wednesday               3 2000-04-23  0 days            1.00 \n2 2001-04-08 2001-04-15  2001     4     8 Sunday                  0 2001-04-15  0 days            0.999\n3 2002-03-29 2002-03-31  2002     3    29 Friday                  5 2002-03-31  0 days            0.999\n4 2003-04-17 2003-04-20  2003     4    17 Thursday                4 2003-04-20  0 days            0.998\n5 2004-04-05 2004-04-11  2004     4     5 Monday                  1 2004-04-11  0 days            1.00 \n6 2005-03-25 2005-03-27  2005     3    25 Friday                  5 2005-03-27  0 days            0.999\n<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0);color:#f2052d\" class=\"has-inline-color\">tail(full_moons_lunar)<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0);color:#3b05f3\" class=\"has-inline-color\">\n# A tibble: 6 \u00d7 10\n# Groups:   Year &#091;6]\n  Date       Easter      Year Month   Day Week_day  Week_day_number Easter_calc Easter_diff Phase_lunar\n  &lt;date&gt;     &lt;date&gt;     &lt;dbl&gt; &lt;dbl&gt; &lt;int&gt; &lt;chr&gt;               &lt;dbl&gt; &lt;date&gt;      &lt;drtn&gt;            &lt;dbl&gt;\n1 2095-03-21 2095-04-24  2095     3    21 Monday                  1 2095-04-24  0 days            1.00 \n2 2096-04-08 2096-04-15  2096     4     8 Sunday                  0 2096-04-15  0 days            0.999\n3 2097-03-28 2097-03-31  2097     3    28 Thursday                4 2097-03-31  0 days            1.00 \n4 2098-04-16 2098-04-20  2098     4    16 Wednesday               3 2098-04-20  0 days            1.00 \n5 2099-04-05 2099-04-12  2099     4     5 Sunday                  0 2099-04-12  0 days            0.998\n6 2100-03-26 2100-03-28  2100     3    26 Friday                  5 2100-03-28  0 days            0.999\n<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0);color:#f20535\" class=\"has-inline-color\">length(full_moons_lunar)<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0);color:#3b05f3\" class=\"has-inline-color\">\n&#091;1] 10\n<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0);color:#f2052d\" class=\"has-inline-color\">nrow(full_moons_lunar)<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0);color:#3b05f3\" class=\"has-inline-color\">\n&#091;1] 101<\/mark><\/em><\/code><\/pre>\n\n\n\n<p>Select the were the difference between calculated Easter date and actual Easter date is not null (!=0):<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code><span style=\"color: #ff0000;\"><em># select the rows where the difference is not null<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>full_moons_lunar&#091;full_moons_lunar$Easter_diff != 0, ]<\/em><\/span>\n<em><mark style=\"background-color:rgba(0, 0, 0, 0);color:#3204f5\" class=\"has-inline-color\"># A tibble: 2 \u00d7 10\n# Groups:   Year &#091;2]\n  Date       Easter      Year Month   Day Week_day Week_day_number Easter_calc Easter_diff Phase_lunar\n  &lt;date&gt;     &lt;date&gt;     &lt;dbl&gt; &lt;dbl&gt; &lt;int&gt; &lt;chr&gt;              &lt;dbl&gt; &lt;date&gt;      &lt;drtn&gt;            &lt;dbl&gt;\n1 2018-04-01 2018-04-01  2018     4     1 Sunday                 0 2018-04-08  -7 days           0.999\n2 2076-04-19 2076-04-19  2076     4    19 Sunday                 0 2076-04-26  -7 days           0.999<\/mark><\/em><\/code><\/pre>\n\n\n\n<p>The calculated day was wrong only twice; on both occasions when full moon was on a Sunday. How many times full moon was on a Sunday?<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code><span style=\"color: #ff0000;\"><em># select the rows where the full moon is on a sunday<\/em><\/span>\n<em><mark style=\"background-color:rgba(0, 0, 0, 0);color:#f50720\" class=\"has-inline-color\">full_moons_lunar&#091;full_moons_lunar$Week_day == \"Sunday\",]<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0);color:#5507f5\" class=\"has-inline-color\">\n# A tibble: 16 \u00d7 10\n# Groups:   Year &#091;16]\n   Date       Easter      Year Month   Day Week_day Week_day_number Easter_calc Easter_diff Phase_lunar\n   &lt;date&gt;     &lt;date&gt;     &lt;dbl&gt; &lt;dbl&gt; &lt;int&gt; &lt;chr&gt;              &lt;dbl&gt; &lt;date&gt;      &lt;drtn&gt;            &lt;dbl&gt;\n 1 2001-04-08 2001-04-15  2001     4     8 Sunday                 0 2001-04-15   0 days           0.999\n<strong> 2 2018-04-01 2018-04-01  2018     4     1 Sunday                 0 2018-04-08  -7 days           0.999<\/strong>\n 3 2021-03-28 2021-04-04  2021     3    28 Sunday                 0 2021-04-04   0 days           0.998\n 4 2025-04-13 2025-04-20  2025     4    13 Sunday                 0 2025-04-20   0 days           1.00 \n 5 2038-03-21 2038-04-25  2038     3    21 Sunday                 0 2038-04-25   0 days           1.00 \n 6 2045-04-02 2045-04-09  2045     4     2 Sunday                 0 2045-04-09   0 days           1.00 \n 7 2052-04-14 2052-04-21  2052     4    14 Sunday                 0 2052-04-21   0 days           1.00 \n 8 2065-03-22 2065-03-29  2065     3    22 Sunday                 0 2065-03-29   0 days           1.00 \n 9 2069-04-07 2069-04-14  2069     4     7 Sunday                 0 2069-04-14   0 days           0.998\n10 2072-04-03 2072-04-10  2072     4     3 Sunday                 0 2072-04-10   0 days           1.00 \n<strong>11 2076-04-19 2076-04-19  2076     4    19 Sunday                 0 2076-04-26  -7 days           0.999<\/strong>\n12 2079-04-16 2079-04-23  2079     4    16 Sunday                 0 2079-04-23   0 days           0.999\n13 2089-03-27 2089-04-03  2089     3    27 Sunday                 0 2089-04-03   0 days           0.998\n14 2092-03-23 2092-03-30  2092     3    23 Sunday                 0 2092-03-30   0 days           0.999\n15 2096-04-08 2096-04-15  2096     4     8 Sunday                 0 2096-04-15   0 days           0.999\n16 2099-04-05 2099-04-12  2099     4     5 Sunday                 0 2099-04-12   0 days           0.998<\/mark><\/em><\/code><\/pre>\n\n\n\n<p>So the calculated Easter date was wrong two out of 16 times (01\/04\/2018 and 19\/04\/2076; 13%).&nbsp;Both dates were when full moon was on a Sunday.&nbsp;Presumably this is related to the exact timing of full moon? Let&#8217;s have a look at that by making a vector and find the exact timing of full moon on both dates. First for 2018:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code><span style=\"color: #ff0000;\"><em># first create a vector of 24 hours:<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>hours &lt;- seq(1, by = 1, length.out = 24)<\/em><\/span>\n<span style=\"color: #ff0000;\"><em># create a shift vector from -24 to 0)<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>shift &lt;- seq(-24, by = 1, length.out = 24 )<\/em><\/span>\n<span style=\"color: #ff0000;\"><em># convert to a data frame<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>hours &lt;- data.frame(\"hours\" = hours, \"shift\" = shift)<\/em><\/span>\n<span style=\"color: #ff0000;\"><em># add the date:<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>hours$date &lt;- as.Date(\"2018-04-01\")<\/em><\/span>\n<span style=\"color: #ff0000;\"><em># calculate lunar illumunation with the lunar package and add to data frame<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>hours$illumination &lt;- lunar.illumination(hours$date, shift = hours$shift)<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>hours<\/em><\/span>\n<span style=\"color: #0000ff;\"><em> hours shift date illumination<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>1 1 -24 2018-04-01 0.9993053<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>2 2 -23 2018-04-01 0.9995192<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>3 3 -22 2018-04-01 0.9996939<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>4 4 -21 2018-04-01 0.9998294<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>5 5 -20 2018-04-01 0.9999255<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>6 6 -19 2018-04-01 0.9999824<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>7 7 -18 2018-04-01 0.9999999<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>8 8 -17 2018-04-01 0.9999782<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>9 9 -16 2018-04-01 0.9999172<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>10 10 -15 2018-04-01 0.9998169<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>11 11 -14 2018-04-01 0.9996772<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>12 12 -13 2018-04-01 0.9994984<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>13 13 -12 2018-04-01 0.9992802<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>14 14 -11 2018-04-01 0.9990229<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>15 15 -10 2018-04-01 0.9987263<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>16 16 -9 2018-04-01 0.9983905<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>17 17 -8 2018-04-01 0.9980155<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>18 18 -7 2018-04-01 0.9976014<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>19 19 -6 2018-04-01 0.9971482<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>20 20 -5 2018-04-01 0.9966559<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>21 21 -4 2018-04-01 0.9961246<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>22 22 -3 2018-04-01 0.9955543<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>23 23 -2 2018-04-01 0.9949450<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>24 24 -1 2018-04-01 0.9942969<\/em><\/span>\n<span style=\"color: #ff0000;\"><em># find the max value:<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>full_moon_2018 &lt;- hours&#091;hours$illumination == max(hours$illumination),]<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>full_moon_2018<\/em><\/span>\n<span style=\"color: #0000ff;\"><em> hours shift date illumination<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>7 7 -18 2018-04-01 0.9999999<\/em><\/span><\/code><\/pre>\n\n\n\n<p>So a shift of 18 hours confirms that full moon was actually on a Saturday and not a Sunday. Similarly for 2076:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code><span style=\"color: #ff0000;\"><em>hours &lt;- seq(1, by = 1, length.out = 24)<\/em><\/span>\n<span style=\"color: #ff0000;\"><em># create a shift vector from -24 to 0)<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>shift &lt;- seq(-24, by = 1, length.out = 24 )<\/em><\/span>\n<span style=\"color: #ff0000;\"><em># convert to a data frame<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>hours &lt;- data.frame(\"hours\" = hours, \"shift\" = shift)<\/em><\/span>\n<span style=\"color: #ff0000;\"><em># add the date:<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>hours$date &lt;- as.Date(\"2076-04-19\")<\/em><\/span>\n<span style=\"color: #ff0000;\"><em># calculate lunar illumunation with the lunar package and add to data frame<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>hours$illumination &lt;- lunar.illumination(hours$date, shift = hours$shift)<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>hours<\/em><\/span>\n<span style=\"color: #0000ff;\"><em> hours shift date illumination<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>1 1 -24 2076-04-19 0.9994982<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>2 2 -23 2076-04-19 0.9996771<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>3 3 -22 2076-04-19 0.9998168<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>4 4 -21 2076-04-19 0.9999171<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>5 5 -20 2076-04-19 0.9999782<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>6 6 -19 2076-04-19 0.9999999<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>7 7 -18 2076-04-19 0.9999824<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>8 8 -17 2076-04-19 0.9999256<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>9 9 -16 2076-04-19 0.9998295<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>10 10 -15 2076-04-19 0.9996941<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>11 11 -14 2076-04-19 0.9995194<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>12 12 -13 2076-04-19 0.9993055<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>13 13 -12 2076-04-19 0.9990523<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>14 14 -11 2076-04-19 0.9987599<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>15 15 -10 2076-04-19 0.9984283<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>16 16 -9 2076-04-19 0.9980576<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>17 17 -8 2076-04-19 0.9976476<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>18 18 -7 2076-04-19 0.9971986<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>19 19 -6 2076-04-19 0.9967105<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>20 20 -5 2076-04-19 0.9961834<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>21 21 -4 2076-04-19 0.9956172<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>22 22 -3 2076-04-19 0.9950121<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>23 23 -2 2076-04-19 0.9943681<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>24 24 -1 2076-04-19 0.9936853<\/em><\/span>\n<span style=\"color: #ff0000;\"><em># find the max value:<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>full_moon_2076 &lt;- hours&#091;hours$illumination == max(hours$illumination),]<\/em><\/span>\n<span style=\"color: #ff0000;\"><em>full_moon_2076<\/em><\/span>\n<span style=\"color: #0000ff;\"><em> hours shift date illumination<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>6 6 -19 2076-04-19 0.9999999<\/em><\/span><\/code><\/pre>\n\n\n\n<p>So again, a shift of 19 hours indicates that the precise timing of full moon was actually on a Saturday, explaining the difference in calculated and actual date for Easter.<\/p>\n\n\n\n<p><strong>Conclusion<\/strong><\/p>\n\n\n\n<p>Overall, the lunar<sup class='sup-ref-note' id='note-zotero-ref-p2305-r16-o1'><a class='sup-ref-note' href='#zotero-ref-p2305-r16'>16<\/a><\/sup> package allows to estimate the exact timing of full moon and subsequently deduct the date of Easter. <i>&nbsp;<\/i><\/p>\n\n\n\n<p>Errors in calculation of the Easter date can occur when full moon is late Saturday evening \/ night (just before Sunday). If not appreciated, this could result in the calculated date of Easter being a week later. It is possible to improve the estimation by calculating the exact timing of full moon when full moon falls on Sunday. Looking at the estimates from the lunar package:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code><span style=\"color: #ff0000;\"><em>full_moons_lunar&#091;full_moons_lunar$Week_day == \"Sunday\", c(\"Date\", \"Easter\", \"Easter_calc\", \"Easter_diff\", \"Phase_lunar\")]<\/em><\/span>\n<span style=\"color: #0000ff;\"><em># A tibble: 16 x 5<\/em><\/span>\n<span style=\"color: #0000ff;\"><em> Date Easter Easter_calc Easter_diff Phase_lunar<\/em><\/span>\n<span style=\"color: #0000ff;\"><em> &lt;date&gt; &lt;date&gt; &lt;date&gt; &lt;time&gt; &lt;dbl&gt;<\/em><\/span>\n<span style=\"color: #0000ff;\"><em> 1 2001-04-08 2001-04-15 2001-04-15 0 0.999<\/em><\/span>\n<strong><span style=\"color: #0000ff;\"><em> 2 2018-04-01 2018-04-01 2018-04-08 -7 0.999<\/em><\/span><\/strong>\n<span style=\"color: #0000ff;\"><em> 3 2021-03-28 2021-04-04 2021-04-04 0 0.998<\/em><\/span>\n<span style=\"color: #0000ff;\"><em> 4 2025-04-13 2025-04-20 2025-04-20 0 1.000<\/em><\/span>\n<span style=\"color: #0000ff;\"><em> 5 2038-03-21 2038-04-25 2038-04-25 0 1.000<\/em><\/span>\n<span style=\"color: #0000ff;\"><em> 6 2045-04-02 2045-04-09 2045-04-09 0 1.000<\/em><\/span>\n<span style=\"color: #0000ff;\"><em> 7 2052-04-14 2052-04-21 2052-04-21 0 1.000<\/em><\/span>\n<span style=\"color: #0000ff;\"><em> 8 2065-03-22 2065-03-29 2065-03-29 0 1.000<\/em><\/span>\n<span style=\"color: #0000ff;\"><em> 9 2069-04-07 2069-04-14 2069-04-14 0 0.998<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>10 2072-04-03 2072-04-10 2072-04-10 0 1.000<\/em><\/span>\n<strong><span style=\"color: #0000ff;\"><em>11 2076-04-19 2076-04-19 2076-04-26 -7 0.999<\/em><\/span><\/strong>\n<span style=\"color: #0000ff;\"><em>12 2079-04-16 2079-04-23 2079-04-23 0 0.999<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>13 2089-03-27 2089-04-03 2089-04-03 0 0.998<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>14 2092-03-23 2092-03-30 2092-03-30 0 0.999<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>15 2096-04-08 2096-04-15 2096-04-15 0 0.999<\/em><\/span>\n<span style=\"color: #0000ff;\"><em>16 2099-04-05 2099-04-12 2099-04-12 0 0.998<\/em><\/span><\/code><\/pre>\n\n\n\n<p>On both dates, lunar illumination was 99.9% but just <strong>after<\/strong> full moon. Four other estimates were lunar illumination&nbsp;was&nbsp;99.9% and four were lunar illumination was 99.8% however were correct. All six estimates were lunar illumination was 100% were correct.<\/p>\n\n\n\n<p>Overall, 100% accuracy can be obtained in calculating the date of Easter Sunday. If full moon is on a Sunday and illumination is less than 100%, the exact timing of full moon should be established to allow accurate prediction.<\/p>\n\n\n\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; Introduction Easter falls on the first Sunday after the first full moon&nbsp;following the beginning of the spring (vernal&nbsp;equinox) on the northern hemisphere. The equinox is the moment when the plane of the earth&#8217;s equator passes through the centre of the sun; so when the centre of the sun is directly above the earth&#8217;s equator. [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"footnotes":""},"class_list":["post-2305","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/pcool.dyndns.org\/index.php\/wp-json\/wp\/v2\/pages\/2305","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pcool.dyndns.org\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/pcool.dyndns.org\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/pcool.dyndns.org\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/pcool.dyndns.org\/index.php\/wp-json\/wp\/v2\/comments?post=2305"}],"version-history":[{"count":6,"href":"https:\/\/pcool.dyndns.org\/index.php\/wp-json\/wp\/v2\/pages\/2305\/revisions"}],"predecessor-version":[{"id":4546,"href":"https:\/\/pcool.dyndns.org\/index.php\/wp-json\/wp\/v2\/pages\/2305\/revisions\/4546"}],"wp:attachment":[{"href":"https:\/\/pcool.dyndns.org\/index.php\/wp-json\/wp\/v2\/media?parent=2305"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}