1, ..... ....“星期日”=> 6} 我有一个-6ren">
gpt4 book ai didi

Ruby:将十进制的日期转换为名称的日期

转载 作者:数据小太阳 更新时间:2023-10-29 07:03:38 26 4
gpt4 key购买 nike

是否可以将 strftime("%u") 值快速转换为 strftime("%A") 或我是否需要构建一个等价散列,如 {"Monday"=> 1, ..... ....“星期日”=> 6}

我有一个以某天为十进制值的数组

class_index=[2,6,7]

我想遍历这个数组来构建这样的天数数组

[nil, "Tuesday", nil, nil, nil, "Saturday", "Sunday"]

所以我可以做

class_list=[]
class_index.each do |x|
class_list[x-1] = convert x value to day name
end

这可能吗?

最佳答案

怎么样:

require "date"
DateTime.parse("Wednesday").wday # => 3

哦,我现在看到你扩大了你的问题。怎么样:

[2,6,7].inject(Array.new(7)) { |memo,obj| memo[obj-1] = Date::DAYNAMES[obj%7]; memo }

让我解释一下:

input = [2,6,7]
empty_array = Array.new(7) # => [nil, nil, nil, nil, nil, nil, nil]
input.inject(empty_array) do |memo, obj| # loop through the input, and
# use the empty array as a 'memo'
day_name = Date::DAYNAMES[obj%7] # get the day's name, modulo 7 (Sunday = 0)
memo[obj-1] = day_name # save the day name in the empty array
memo # return the memo for the next iteration
end

Ruby 之美。

关于Ruby:将十进制的日期转换为名称的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7558074/

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