Hamamatsu.rb #157

自己紹介

前回ふりかえり

今回のネタ

次回以降のネタ

LT

うるう年ではまった話

  • 和暦との合わせ技ではまった。
  • 令和6年2月29日は存在するが、西暦2006年2月29日は存在しない
  • そもそも外部システムから年号がわたってこない…
  • 実際はC#のコードだがRubyで書くとこんな感じ
require 'time'
def print_wareki(warekistr) 
  wareki = Date.parse(sprintf('20%d/%d/%d', warekistr[0..1], warekistr[2..3], warekistr[4..5]))
  warekiyear = warekistr[0..1].to_i
  if (warekiyear < 30) then  #この判断の仕方もまずい
    gengou = '令和'
  else
    gengou = '平成'
  end
  p sprintf("%s%d年%d月%d日", gengou, warekiyear,wareki.month,wareki.day)
end

#和暦が外部システムからわたってくる
print_wareki('060228')  #これは問題ない 
print_wareki('060229')  #これはエラーになる
#rubyの場合はinvalid date (Date::Error)
#令和6年2月29日は存在するが、
#西暦2006年2月29日は存在しない。

告知

Select a repo