Edited at

最終出社日を出力する

More than 3 years have passed since last update.

「本日が最終出社日でした」みたいなエントリを見るたびに,有給休暇n日余ってるからこの日が最終出社とかみんなどうやって割り出してるんだろうといつも思ってたわけで.

カレンダー見ながら数えれば出るっちゃ出るけど,体調崩したりとか急用とかで有給休暇減っちゃったりして計算しておいた最終出社日がずれたりしてそうこうしているうちに俺が計算しておいた最終出社日は本当にこの日だっただろうかみたいなことが起こりそうな気がする.

……や,普通よほど有給休暇貯まってなければ,退職日1ヶ月強くらいの範囲だろうしそんな混乱はないのかもしれないけど,不幸か不幸か,これまで退職してきた会社には退職前に有休消化できる制度がなかったためその辺の知見がない:p 1

そんなわけで,何か計算できるツールがあると便利だと思った.

単純に退職日から有給休暇の残弾分,営業日を遡ればいいんだろうけど,そういえば祝日とかもあるしその辺面倒そうーと脳内あとでタグつけつつ軽く検索してみたら,

[ruby] 祝日判断や休日判断をrubyでやるなら、これでいいんじゃないかな - メモ - Qiita

というエントリを見つけた.

で,上記で紹介されてる bokmann/business_timekomagata/holiday_jp を使ったらサクッとできた.


puts_final_working_date.rb

require 'business_time'

require 'holiday_jp'

# 退職日
final_date = Date.parse(ARGV[0])
# 残ってる有給休暇数
paid_holiday_count = ARGV[1].to_i

HolidayJp.between(Date.today, final_date).each do |d|
BusinessTime::Config.holidays << d.date
end

puts paid_holiday_count.business_days.before(final_date)


今月末で辞める予定で有給休暇が10日残ってる場合,

% bundle exec ruby ./puts_final_working_date.rb 2015-11-30 10

=> 2015-11-13

という感じ.

これでいつおしまいの日が来ても安心ですね.





  1. 現職には有休消化の仕組みあるので使う日が楽しみですね:)