Ruby で今年の進捗率を計算する
% irb irb(main):001:0> require 'active_support/time' => true irb(main):002:0> current = Time.now irb(main):003:0> beginning_of_year = current.beginning_of_year.to_f irb(main):004:0> end_of_year = current.end_of_year.to_f irb(main):005:0> irb(main):006:0> progress = current.to_f - beginning_of_year irb(main):007:0> whole = end_of_year - beginning_of_year irb(main):008:0> progress_percentage = progress / whole * 100 irb(main):009:0> puts progress_percentage 49.65312263257749 => nil
まだ50%行ってないですね。
irb(main):010:0> current = Time.now.tomorrow irb(main):011:0> beginning_of_year = current.beginning_of_year.to_f irb(main):012:0> end_of_year = current.end_of_year.to_f irb(main):013:0> irb(main):014:0> progress = current.to_f - beginning_of_year irb(main):015:0> whole = end_of_year - beginning_of_year irb(main):016:0> progress_percentage = progress / whole * 100 irb(main):017:0> progress_percentage => 49.926780593177945
24時間後も50%未満じゃん、、。
irb(main):034:0> Time.at(beginning_of_year + whole/2) => 2020-07-02 00:00:00 +0900
50%を迎えるのは 7/2 0時ジャストっぽいですね。
残りも頑張ろー。