【问题标题】:in Ruby, conversion of float integer into %H %M %S time在 Ruby 中,将浮点整数转换为 %H %M %S 时间
【发布时间】:2014-04-07 05:53:04
【问题描述】:

如何将浮点数(例如 13.5)转换为相应的 24 小时制时间 %H:%M:%S? (13.5 为 13:30:00,8.25 为 8:15:00) 我仍在计算 Time 类...它让我感到困惑

【问题讨论】:

  • 首先通过计算小时和分钟将它们转换为秒,然后使用以下可以使用 Time.at().utc.strftime("%H:%M:%S")

标签: ruby time


【解决方案1】:
sec = (13.5 * 3600).to_i
min, sec = sec.divmod(60)
hour, min = min.divmod(60)
"%02d:%02d:%02d" % [hour, min, sec] # => "13:30:00"

【讨论】:

    【解决方案2】:
    #Time of your with two digit in minutes like 5 to 50
    time_val="13.50"
    #split by "."
    split_val=time_val.split('.')
    #get a hours 
    hour_val=split_val[0]
    #get a minutes
    min_val= (100*60)/split_val[1].to_i
    if(min_val == 60)
       hour_val +=1
       min_val=0
    end
    #it's concat a hours and minutes then it's final result
    final_time= hour_val.to_s + ":" + min_val + ":00"
    

    【讨论】:

    • 这不适用于所有情况。对于输入“13.99”,它将给出“13:60:00”,但应该是“14:00:00”。对吗?
    • 嗨,感谢您的评论。请检查它更新的答案
    猜你喜欢
    • 2018-10-07
    • 2020-05-09
    • 1970-01-01
    • 2016-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-28
    • 2020-02-14
    相关资源
    最近更新 更多