所以我要遍历一个哈希,其中键/值之一是{date:=>'MM / DD / YYYY'}
当我遍历时,我使用日期宝石来确定每个日期是星期几(0-6)。
要获取我当前所在的索引的星期几,以便我可以将其与另一个整数进行比较,其想法是检查索引的星期几是否与星期几相同。我寻找的那一周。
要获取该整数,我运行以下命令:
d = Date.parse(hash[i].values[2])
day_of_the_week = d.cwday
当我仅凭樱桃挑选的日期单独执行此操作时,此方法很好,但是我正在遍历哈希,得到的是:
search.rb:25:in `parse': invalid date (ArgumentError)
在特定日期“ 9/13/17”。
“ 9/13/17”是否有问题?为什么这实际上还会在其他几天(从“ 9/5/17”开始)有效,然后在这一天随机卡住?
在我撰写本文时,我做了一些挖掘,并确切地找到了它的索引:
d = Date.parse(hash[4224].values[2])
day_of_the_week = d.cwday
给我同样的错误,我完全困惑,怎么回事?同样不是9 / etc中缺少MM,因为隔两个月都是相同的方式。
编辑:结果应为2,2017年9月12日是星期二。
答案 0 :(得分:1)
您需要传递日期格式,使用
Date.strptime('9/13/2017', '%m/%e/%Y').
答案 1 :(得分:1)
我发现使用:
d = Date.strptime(hash[i].values[2], '%m/%d/%Y')
创建比当前索引更好的日期对象
d = Date.parse(hash[i].values[2].to_s)
替换就可以了。