0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

作業時間を計測するには?

Posted at

動機

最近、実際に作業出来た時間の記録として、始まりと終わりの時間をメモっているのですが、
始まりから、終わりまで何時間の作業が出来たのか計測するツールが欲しかった。

ぶっちゃけウェブサイトにいくらでもその手の便利ツールはあるけれど、
これくらいなら自分でも作れるんじゃいかな、やってみよって感じです。

やったことその①

欲しいのは時間と分だけなので、入力の手間考えて、
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

こんな感じで落ち着きました。

もっといい書き方は絶対あると思うので、
基本的なところ勉強し直しですねわかりたくない。

そもそもお借りしたブログの内容理解からガンバリマス。

以上となります。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?