動機
最近、実際に作業出来た時間の記録として、始まりと終わりの時間をメモっているのですが、
始まりから、終わりまで何時間の作業が出来たのか計測するツールが欲しかった。
ぶっちゃけウェブサイトにいくらでもその手の便利ツールはあるけれど、
これくらいなら自分でも作れるんじゃいかな、やってみよって感じです。
やったことその①
欲しいのは時間と分だけなので、入力の手間考えて、
1234と入力→12時34分と認識
って感じのを2つ並べて計算すりゃいいじゃんと。
勘違いオツな履歴
puts "始まりの時間と分を4桁で入力してください(例:12時34分→1234)"
start = gets.to_i
sta1 = start / 100
sta2 = start % 100
puts "終わりの時間と分を4桁で入力してください(例:12時34分→1234)"
stop = gets.to_i
sto1 = stop / 100
sto2 = stop % 100
jikan = sto1 - sta1
hun = sto2 - sta2
p jikan
p hun
ってとこまでやって、
「あ、時間はいいにしても分の計算でおかしくなるじゃん」
って気付いて凹みました。
いや、うんバカなだけなんだけどね。
やったことその②
Timeクラスをちょっと調べて
結果が残念な履歴
require "time"
puts "始まりの時間と分を入力してください(例:12時34分→12:34)"
start = gets
sta = Time.parse(start)
puts "終わりの時間と分を入力してください(例:12時34分→12:34)"
stop = gets
sto = Time.parse(stop)
jikan = sto - sta
p jikan
で行けるかなと思ったけど、結果が恐らく秒数で、ダメだこりゃと。
最終的にやったこと
こちらのブログの力をお借りしまして
(まだ理解しきれていないのでコピペさせて頂いてますすいません)
最終的の結果
require "time"
puts "始まりの時間と分を入力してください(例:12時34分→12:34)"
start = gets
sta = Time.parse(start)
puts "終わりの時間と分を入力してください(例:12時34分→12:34)"
stop = gets
sto = Time.parse(stop)
sec = sto - sta
day = sec.to_i / 86400
hoursec = (Time.parse("1/1") + 10000 + 15 * 60 + 25).strftime("%-H時間%-M分%-S秒")
p hoursec
こんな感じで落ち着きました。
もっといい書き方は絶対あると思うので、
基本的なところ勉強し直しですねわかりたくない。
そもそもお借りしたブログの内容理解からガンバリマス。
以上となります。