mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Initial revision
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
392296c12d
commit
3db12e8b23
225 changed files with 75935 additions and 0 deletions
42
lib/parsedate.rb
Normal file
42
lib/parsedate.rb
Normal file
|
@ -0,0 +1,42 @@
|
|||
module ParseDate
|
||||
MONTHS = {
|
||||
'jan' => 1, 'feb' => 2, 'mar' => 3, 'apr' => 4,
|
||||
'may' => 5, 'jun' => 6, 'jul' => 7, 'aug' => 8,
|
||||
'sep' => 9, 'oct' =>10, 'nov' =>11, 'dec' =>12 }
|
||||
MONTHPAT = MONTHS.keys.join('|')
|
||||
DAYPAT = 'mon|tue|wed|thu|fri|sat|sun'
|
||||
|
||||
def parsedate(date)
|
||||
if date.sub!(/(#{DAYPAT})/i, ' ')
|
||||
dayofweek = $1
|
||||
end
|
||||
if date.sub!(/\s+(\d+:\d+(:\d+)?)/, ' ')
|
||||
time = $1
|
||||
end
|
||||
if date =~ /19(\d\d)/
|
||||
year = Integer($1)
|
||||
end
|
||||
if date.sub!(/\s*(\d+)\s+(#{MONTHPAT})\S*\s+/i, ' ')
|
||||
dayofmonth = $1.to_i
|
||||
monthname = $2
|
||||
elsif date.sub!(/\s*(#{MONTHPAT})\S*\s+(\d+)\s+/i, ' ')
|
||||
monthname = $1
|
||||
dayofmonth = $2.to_i
|
||||
elsif date.sub!(/\s*(#{MONTHPAT})\S*\s+(\d+)\D+/i, ' ')
|
||||
monthname = $1
|
||||
dayofmonth = $2.to_i
|
||||
elsif date.sub!(/\s*(\d\d?)\/(\d\d?)/, ' ')
|
||||
month = $1
|
||||
dayofmonth = $2.to_i
|
||||
end
|
||||
if monthname
|
||||
month = MONTHS[monthname.downcase]
|
||||
end
|
||||
if ! year && date =~ /\d\d/
|
||||
year = Integer($&)
|
||||
end
|
||||
return year, month, dayofmonth
|
||||
end
|
||||
|
||||
module_function :parsedate
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue