I failed to find what is the weekday by following codes: timetoday = Time.now if timetoday =~ /Fri/ puts "Friday" end Please help to analysis what is the problem。 puts timetoday It will display: Fri Jun **** 2009 but it is not true for: timetoday =~ /Fri/
On Jun 5, 12:01 am, jnxgn <s...-C13m50va8u4@public.gmane.org> wrote:> I failed to find what is the weekday by following codes: > > timetoday = Time.now > > if timetoday =~ /Fri/ > puts "Friday" > end > > Please help to analysis what is the problem。 > puts timetoday > It will display: Fri Jun **** 2009 > but it is not true for: timetoday =~ /Fri/Instances of Time do not implement a =~ which does that. When you run Time.now at the console it gets converted to a string (and that string has a =~ method which behaves as you expect). Converting your time to a string would sort of work but you really shouldn''t do that - just examine the value of timetoday.wday Fred
From what Fred mentioned, you can also use timetoday.wday to get the corresponding day name from the Date::DAYNAMES Array constant. Try this and see what you get: puts Date::DAYNAMES[timetoday.wday] Franz
Or if you want abbreviated version you can use Date::ABBR_DAYNAMES[Time.now.wday] Boško On Jun 5, 9:25 am, Franz Strebel <franz.stre...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> From what Fred mentioned, you can also use timetoday.wday > to get the corresponding day name from the Date::DAYNAMES > Array constant. > > Try this and see what you get: > > puts Date::DAYNAMES[timetoday.wday] > > Franz