「平成12年て西暦何年だったかな〜」ということが、よくある。
Emacs-Lispの勉強用にスクリプトを書いた。
コード
;;;===============================================================
;;; 西暦を調べる
(defun disp-seireki (mojiretu start year)
"MOJIRETUのSTART番目の文字にYEARを足す."
(interactive "sInput m:\nnInput s:\nnInput y:")
(message
(number-to-string (+ (string-to-number (substring mojiretu start))
year))))
(defun 2seireki (mojiretu)
"MOJIRETUは h12 あるいは 平成12 を想定している."
(interactive "sInput 和暦を入力(h2 or 平成2): ")
(let ((alpha (substring mojiretu 0 1)) ; h
(kanji (substring mojiretu 0 2))) ; 平成
(cond
((or (equal "r" alpha) (equal "R" alpha))
(disp-seireki mojiretu 1 2018))
((equal "令和" kanji)
(disp-seireki mojiretu 2 2018))
((or (equal "h" alpha) (equal "H" alpha))
(disp-seireki mojiretu 1 1988))
((equal "平成" kanji)
(disp-seireki mojiretu 2 1988))
((or (equal "s" alpha) (equal "S" alpha))
(disp-seireki mojiretu 1 1925))
((equal "昭和" kanji)
(disp-seireki mojiretu 2 1925))
(t (message " 無効な入力でした")))))
(define-key global-map "\C-cy" '2seireki)
使い方
このコードを 「$HOME/.emacs.d/init.el」 に書いておく。
Ctrl + c のあと y と入力する。( y は year のつもりw )
すると、以下のような画面になる。
英字で「s60」あるいは「S60」と入力するか、漢字で「昭和」と入力し、続けて半角で「60」と入力する。
これで「Enterキー」とすると、以下のように表示される。