時間計算の効率化を図りGemを作ってみる 〜 Matsue.rb 2013.9月定例会に参加しました

created at: 2013/09/22, by:

このエントリーをはてなブックマークに追加

Matsue.rb  

 あれ〜!Matsue.rbって素敵な公式サイトがあるんですね!(ステマ)  

 それはさておき、Matsue.rb 2013.9月定例会に参加してきました。毎度の事ながら主催の方々にはお世話になりました。ありがとうございます。

 今回の定例会(構想を含め、数日前からチョロッとやっておりました)は時間計算の効率化をRubyで行うという、社会保険労務士っぽい事をしてみました。(Rubyで行う時点で、社労士っぽくは無いか…)

やりたいこと

 タイムレコーダーのデータの集計です。

 一般的にCSVファイルのような形でデータを出力するタイムレコーダーがありまして、その際に出力されるデータは、例えば「10:20」のような形で時間表記されている事があります。この形式の文字列から時間の集計をしたいのであります。

 欲しい機能はいくつかありましたが、主なものは次の通りです。

  • 残業時間の割り出し(特に変形労働だと、日ごとに所定を設定する必要あり)
  • 時間帯別の時間数集計(深夜帯の割り出しや、時間帯によって時給に変更があるケースへの対応)
  • 日ごとの時間数集計(繁忙日によって時給に変更があるケースへの対応)
  • 複数回の休憩時間への対応

別にGemじゃなくても良かったけど…

Time P@CK  

 とりあえず、ここのタイムカードに対応すれば良かったので、Gemを作らなくても良かったのですが、導入している社が数社あるため、共通の処理については今のうちに切り出しておこうかなと思いました。

とりあえず作ってみました。

calc_working_hours  

 仕様が一貫していなかったり、ひどい書き方だったり、重複しているコードがあったりしますが、動きとしては概ね期待通りなので、ひとまずは良しとしておきました。

 今後は、必要に応じて改善したいと思っています。必要が生じない可能性が高いですが…。