Вы можете хранить сопоставления имен-> чисел в массиве (просматривайте массив, пока не найдете нужный) или хеш (ищите имя месяца в хеш-коде, чтобы получить число - преимущества от поддержки любого числа языки и сокращения тоже). Я предпочел бы хранить информацию в структурах данных, а не в коде, но это может быть просто моим собственным иррациональным поведением.
EDIT
В ответ на @ roboshop «Звучит как большая работа», возможно, его сравнивают с однострочными, которые поддерживает платформа, но если ваши клиенты просят вас поддержать такие сокращения, как «Jan», «Fe», « Мар ", я думаю, использование структуры данных дает большую дополнительную гибкость:
months = { "ja" => 1, "jan" => 1, "january" => 1,
"fe" => 2, "feb" => 2, "february" => 2,
"ma" => 3, "mar" => 3, "march" => 3,
"ap" => 4, "apr" => 4, "april" => 4,
"my" => 5, "may" => 5,
"jn" => 6, "jun" => 6, "june" => 6,
"jl" => 7, "jul" => 7, "july" => 7,
"au" => 8, "aug" => 8, "august" => 8,
"se" => 9, "sep" => 9, "sept" => 9, "september" => 9,
"oc" => 10, "oct" => 10, "october" => 10,
"no" => 11, "nov" => 11, "november" => 11,
"de" => 12, "dec" => 12, "december" => 12,
"januar" => 1,
"februar" => 2,
"märz" => 3,
"mai" => 5,
"juni" => 6,
"oktober" => 10,
"dezember" => 12}
puts "Month %s is %d" % [ARGV[0], months[ARGV[0].downcase]]
Конечно, теперь вы должны знать локализованные версии месяцев, которые нужны вашим пользователям, но гораздо проще поддерживать запрошенные сокращения.