Simple 干支(eto) library
require 'etoji'
Etoji.geto(year: 2023)
# => #<data Etoji::Jyunishi::Animal
# number=4,
# emoji="🐰",
# character="卯",
# character_hiragana_kun="う",
# character_hiragana_on="ぼう",
# animal_name_ja="兎",
# animal_name_ja_hiragana="うさぎ",
# animal_name_en="rabbit">
require 'etoji'
Etoji.geto_full_string(year: 2023)
# => "癸卯"
The gem is available as open source under the terms of the MIT License.