用包含它的字符串替换手动写入的日期

时间:2012-08-15 06:40:39

标签: ruby

我正在处理这两件事:

CSV.foreach('datafile.csv','r') {|row| D_Location << row[0]}

puts Date.new(2003,05,02).cwday

在第一行中,我想将datafile.csv更改为类似字符串的内容,这样我就可以更改一个字符串,并且所有这些代码都会更改。我有很多,每个控制1 csv列。

在第二个中,我想替换写入的实际日期,并用字符串替换它。这是可以自动的,因为字符串将基于其他标准生成。

我相信如果我是一个太多的菜鸟,他们会禁止我。然后我会坚强起来,最终自己找到这些答案。但到目前为止,我已经解决了很多,但不是这个。提前谢谢!

2 个答案:

答案 0 :(得分:1)

创建一个函数,该函数接收表示工作日的字符串,并返回一个数字。稍后在代码中调用此函数:

Date.new(2003, 05, yourfun('Tuesday')).cwday

答案 1 :(得分:1)

对于问题的第一部分,您已经在处理字符串了。我认为你的意思是你希望它在一个变量中:

csv_file = 'datafile.csv'
CSV.foreach(csv_file,'r') {|row| D_Location << row[0]}

对于问题的第二部分,Date.parse()适用于字符串,但它们必须采用可识别的格式。如果日期字符串使用逗号,则可以用连字符替换它们:

date_str = "2003,05,02"
Date.parse(date_str.gsub(",", "-")).cwday # => 5

目前尚不清楚日期字符串的来源或者它们的格式,但您需要了解的一般概念是您可以使用变量,并且可以转换字符串。