「平成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 )

すると、以下のような画面になる。

Ctrl + c y と入力したところ

英字で「s60」あるいは「S60」と入力するか、漢字で「昭和」と入力し、続けて半角で「60」と入力する。

昭和60 と入力したところ

これで「Enterキー」とすると、以下のように表示される。

1985 と表示された