21
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SmartHRAdvent Calendar 2019

Day 12

年末調整の元号表記に振り回された話

Last updated at Posted at 2019-12-12

これは SmartHR Advent Calendar 2019 12日目の記事です。

こんにちはりさきゃんです!
令和がはじまってから初めての12月!12月といえば年末調整!
SmartHRの年末調整機能を実装するときちょっと困った元号への対応について書きたいと思います。

年末調整の書類

年末調整とは払いすぎた所得税を再計算して精算するための手続きのこと。
年末ごろに以下の書類を記入して会社に提出します。

今年の給与所得者の扶養控除等(異動)申告書(通称・マルフ)
来年の給与所得者の扶養控除等(異動)申告書(通称・マルフ)
給与所得者の配偶者控除等申告書(通称・マルハイ)
給与所得者の保険料控除申告書(通称・マルホ)
給与所得者の(特定増改築等)住宅借入金等特別控除申告書(社内呼称・マルロ)

年末調整の書類は毎年変更がある

実は、年末調整の書類は毎年変わっています。 ( 詳しくはこちらのブログを見てください。 ) そのため、毎年の仕様に合わせて開発していく必要があります。

加えて、今年は新元号への切り替わりもあり、2019年 を表す元号の表記は、年調の書類ごとにバラバラでした。

今年のマルフは平成31年(2019年)

元号(平成)表記(半角数字)と西暦表記(半角数字)
image.png

[手続名]給与所得者の扶養控除等の(異動)申告|国税庁より

来年のマルフは令和2年

元号(令和)表記(たぶん全角数字)
image.png

[手続名]給与所得者の扶養控除等の(異動)申告|国税庁より

マルハイは令和元年

元号(令和)+元年表記
image.png

[手続名]給与所得者の配偶者控除等の申告|国税庁より

マルホは令和元年

元号(令和)+元年表記
image.png

[手続名]給与所得者の保険料控除の申告|国税庁 より

マルロは令和1年

元号(令和)表記(半角数字)
image.png

令和元年分 年末調整のしかた|国税庁給与所得者の(特定増改築等)住宅借入金等特別控除申告書記載例より

image.png

マルフの16歳未満の子供欄の「令和」表記

今年マルフと来年マルフの下部に16歳未満の扶養家族(平17.1.2以後生) という欄があり、16歳未満の扶養家族の生年月日を書く必要がありますが、今年マルフ側には「令」の文字はありません。

  • 思わせぶりな今年マルフの 平・ (ドット)

  • 来年マルフには平・令 と記載あり

image.pngimage.png

どうせなら、今年マルフにも「令」を書いてほしかった・・・

元号表記がバラバラだと、困る :confounded:

SmartHR年末調整ではブラウザ上で質問に答えた結果から年末調整書類を出力します。今年からは給与所得者の(特定増改築等)住宅借入金等特別控除申告書のサンプル作成にも対応しました。

生成された年末調整の書類をダウンロードするときや、手元の書類と生成された書類を見比べて内容を書き写すとき、表記ブレしていると違う書類に見えて不安になります。

mind note-17.jpg

書類を開くリンクやダウンロード時のファイル名は書類に合わせたい! でも、年調の書類の書式がバラバラで統一できないという理由で、面倒でした。

Rubyで元号をハンドリングする

SmartHRの年末調整は Ruby で開発されています。
Ruby で元号対応する方法はいくつかあります。

Date::jisx0301を使う

Ruby 2.6.3 から「令和」をパースできるようになりました。

Date::jisx0301('R01.12.12')  # => Thu, 12 Dec 2019
Date.new(2019, 12, 12).jisx0301 # => "R01.12.12"

jisx0301 というメソッド名は JIS X 0301 を表していて、これは 日付と時刻の表記に関するISOの国際規格の日本拡張である日本工業規格を指しています。

era_ja や wareki などの gem を使う

実際は、 "○○1年の場合は、○○元年とする" などの慣習的なルールにかんたんに対応するために gem を使うことが多いです。私は era_jaを使っています。

require "era_ja"

Date.new(2019,12,12).to_era("%O%JE年%m月%d日") # => "令和元年12月12日"

他には wareki などのgemがあります。

まとめ

今年の年末調整は、書式変更に加え、改元などの影響もあり、様々な書式で 2019年 が表されていました。
書類には元号を使わず西暦で統一するなどシンプルな仕様になることを強く願います。

21
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?