gpt4 book ai didi

ruby - 如何在 ruby​​ 中解析天/小时/分钟/秒?

转载 作者:数据小太阳 更新时间:2023-10-29 06:42:40 25 4
gpt4 key购买 nike

是否有 gem 或其他东西来解析像“4h 30m”“1d 4h”这样的字符串——有点像 JIRA 或任务规划器中的估计,也许,国际化?

最佳答案

发布第二个答案,因为慢性(这是我最初的答案所建议的)不会给你时间跨度,而是时间戳。

这是我的解析器。

class TimeParser
TOKENS = {
"m" => (60),
"h" => (60 * 60),
"d" => (60 * 60 * 24)
}

attr_reader :time

def initialize(input)
@input = input
@time = 0
parse
end

def parse
@input.scan(/(\d+)(\w)/).each do |amount, measure|
@time += amount.to_i * TOKENS[measure]
end
end
end

策略相当简单。将"5h"拆分成["5", "h"],定义"h"代表多少秒(TOKENS),并将该数量添加到 @time

TimeParser.new("1m").time
# => 60

TimeParser.new("1m wtf lol").time
# => 60

TimeParser.new("4h 30m").time
# => 16200

TimeParser.new("1d 4h").time
# => 100800

让它处理 "1.5h" 应该不会太难,看到代码库就这么简单。

关于ruby - 如何在 ruby​​ 中解析天/小时/分钟/秒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/657309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com