Vous pouvez stocker Name-> cartographies numériques dans un tableau (regardez à travers le réseau jusqu'à ce que vous trouviez celui que vous voulez) ou une table de hachage (rechercher le nom du mois dans le hachage pour obtenir un nombre - avantages de soutenir un certain nombre de langues et d'abréviations, aussi). Je préfère stocker les informations dans les structures de données que dans le code, mais cela pourrait être mon propre comportement irrationnel.
EDIT
En réponse à @ peut-être il est comparé à une seule ligne que la plate-forme prend en charge roboshop de « sons comme beaucoup de travail », mais si vos clients vous demandent de soutenir des abréviations telles que " Jan », « Fe », « Mar », je pense à l'aide d'une structure de données donne beaucoup de flexibilité supplémentaire:
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]]
Bien sûr, maintenant, vous devez connaître les versions localisées de mois vos utilisateurs veulent, mais est beaucoup plus facile de soutenir les abréviations demandées.
double possible de [Comment analyser un nom de mois (string) à un entier pour la comparaison en C#?] (http://stackoverflow.com/questions/258793/how-to-parse-a-month-name-string-to-an-integer-for-comparison-in- c) – Diskdrive
http://stackoverflow.com/questions/258793/how-to-parse-a-month-name-string-to-an-integer-for-comparison-in-c/258828#258828 – Necros