[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: japanese-holidays.el



CACの山田です。

>>>>> In [meadow-users-jp : No.2953] 
>>>>> "Yuh Ohmura" = Yuh Ohmura <yutopia@xxxxxxxxxxxx> writes:
Yuh Ohmura> 最新版かどうかわかりませんが、
Yuh Ohmura>  http://wig.nu/~ohtaki/text/diary/2000/japanese-holidays.el
Yuh Ohmura> というのをみつけました。

私はこんなのを指定して、イースターまわりをdiary で指定できるように
してます。ご参考まで。(holiday.el からのパクリです^^;;)

~/.emacs の設定

;;; for Easter を Diary で指定可能にする
(defun easter-abs (displayed-year)
  "return Easter absolute
    -  2 : Good Friday
    - 46 : Ash Wednesday"
  (let* ((century (1+ (/ displayed-year 100)))
	 (shifted-epact;; Age of moon for April 5...
	  (% (+ 14 (* 11 (% displayed-year 19));;     ...by Nicaean rule
		(-;; ...corrected for the Gregorian century rule
		 (/ (* 3 century) 4))
		(/;; ...corrected for Metonic cycle inaccuracy.
		 (+ 5 (* 8 century)) 25)
		(* 30 century));;              Keeps value positive.
	     30))
	 (adjusted-epact;;  Adjust for 29.5 day month.
	  (if (or (= shifted-epact 0)
		  (and (= shifted-epact 1) (< 10 (% displayed-year 19))))
	      (1+ shifted-epact)
	    shifted-epact))
	 (paschal-moon;; Day after the full moon on or after March 21.
	  (- (calendar-absolute-from-gregorian (list 4 19 displayed-year))
	     adjusted-epact))
	 (abs-easter (calendar-dayname-on-or-before 0 (+ paschal-moon 7))))
    abs-easter))


~/diay は 以下のようなもの。

%%(let ((easter-date 
            (calendar-gregorian-from-absolute 
                (easter-abs (extract-calendar-year date)))))
       (equal date
	   (list (extract-calendar-month easter-date)
	         (truncate (extract-calendar-day easter-date))
		 (extract-calendar-year easter-date)))
   ) Easter Sunday

%%(let ((easter-date 
           (calendar-gregorian-from-absolute 
             (- (easter-abs (extract-calendar-year date)) 2))))
       (equal date
	   (list (extract-calendar-month easter-date)
	         (truncate (extract-calendar-day easter-date))
		 (extract-calendar-year easter-date)))
   ) Good Friday
%%(let ((easter-date
          (calendar-gregorian-from-absolute 
            (- (easter-abs (extract-calendar-year date)) 46))))
       (equal date
	  (list (extract-calendar-month easter-date)
	        (truncate (extract-calendar-day easter-date))
		(extract-calendar-year easter-date)))
   ) Ash Wednesday (灰の水曜日)
%%(let ((easter-date 
          (calendar-gregorian-from-absolute
           (+ (easter-abs (extract-calendar-year date)) 39))))
       (equal date
	   (list (extract-calendar-month easter-date)
	         (truncate (extract-calendar-day easter-date))
		 (extract-calendar-year easter-date)))
   ) Ascension Day
%%(let ((easter-date 
          (calendar-gregorian-from-absolute
            (+ (easter-abs (extract-calendar-year date)) 49))))
       (equal date
	   (list (extract-calendar-month easter-date)
	         (truncate (extract-calendar-day easter-date))
		 (extract-calendar-year easter-date)))
   ) Pentecost (Whitsunday)


-- 
山田 喜彦  yyamada@xxxxxxxxx :   (株)シーエーシー  先端技術研究室
        PGP-Key:  http://pgp.nic.ad.jp/pgp/index.html
                  http://lark/pks-commands.html (CAC 社内用)
PGP-Fingerprint:  DH/DSS [71AF A14E 3800 AE85 B0C2  AA50 C08B A8E9 CC29 E341]