mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	 0e866a2e51
			
		
	
	
		0e866a2e51
		
	
	
	
	
		
			
			git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2589 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			48 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| #! /usr/bin/env ruby
 | |
| 
 | |
| # goodfriday.rb: Written by Tadayoshi Funaba 1998, 2000, 2002
 | |
| # $Id: goodfriday.rb,v 1.1 1998-03-08 18:44:44+09 tadf Exp $
 | |
| 
 | |
| require 'date'
 | |
| 
 | |
| def easter(y)
 | |
|   g = (y % 19) + 1
 | |
|   c = (y / 100) + 1
 | |
|   x = (3 * c / 4) - 12
 | |
|   z = ((8 * c + 5) / 25) - 5
 | |
|   d = (5 * y / 4) - x - 10
 | |
|   e = (11 * g + 20 + z - x) % 30
 | |
|   e += 1 if e == 25 and g > 11 or e == 24
 | |
|   n = 44 - e
 | |
|   n += 30 if n < 21
 | |
|   n = n + 7 - ((d + n) % 7)
 | |
|   if n <= 31 then [y, 3, n] else [y, 4, n - 31] end
 | |
| end
 | |
| 
 | |
| es = Date.new(*easter(Time.now.year))
 | |
| [[-9*7, 'Septuagesima Sunday'],
 | |
|  [-8*7, 'Sexagesima Sunday'],
 | |
|  [-7*7, 'Quinquagesima Sunday (Shrove Sunday)'],
 | |
|  [-48,  'Shrove Monday'],
 | |
|  [-47,  'Shrove Tuesday'],
 | |
|  [-46,  'Ash Wednesday'],
 | |
|  [-6*7, 'Quadragesima Sunday'],
 | |
|  [-3*7, 'Mothering Sunday'],
 | |
|  [-2*7, 'Passion Sunday'],
 | |
|  [-7,   'Palm Sunday'],
 | |
|  [-3,   'Maunday Thursday'],
 | |
|  [-2,   'Good Friday'],
 | |
|  [-1,   'Easter Eve'],
 | |
|  [0,    'Easter Day'],
 | |
|  [1,    'Easter Monday'],
 | |
|  [7,    'Low Sunday'],
 | |
|  [5*7,  'Rogation Sunday'],
 | |
|  [39,   'Ascension Day (Holy Thursday)'],
 | |
|  [42,   'Sunday after Ascension Day'],
 | |
|  [7*7,  'Pentecost (Whitsunday)'],
 | |
|  [50,   'Whitmonday'],
 | |
|  [8*7,  'Trinity Sunday'],
 | |
|  [60,   'Corpus Christi (Thursday after Trinity)']].
 | |
| each do |xs|
 | |
|   puts((es + xs.shift).to_s + '  ' + xs.shift)
 | |
| end
 |