J'essaie de créer une fonction qui peut convertir un numéro de mois en un nom de mois abrégé ou un nom de mois abrégé en un numéro de mois. Je pensais que c'était peut-être une question courante, mais je ne l'ai pas trouvée en ligne.
Je pensais au module calendrier . Je vois que pour convertir le numéro du mois en nom de mois abrégé, vous pouvez simplement le faire calendar.month_abbr[num]
. Je ne vois cependant pas comment aller dans l'autre sens. La création d'un dictionnaire pour convertir l'autre sens serait-elle la meilleure façon de gérer cela? Ou y a-t-il une meilleure façon de passer du nom du mois au numéro du mois et vice versa?
<calendar._localized_month instance at 0x0164C9E0>
. La version originale du code de David a produit des erreurs de syntaxe dans 2.6 et 3.1 - les deux ont besoin de()
v, k et les deux ont besoin d'énumérer pour calendar.month_abbr, ce que j'ai corrigé.calendar.month_abbr
c'était un tableau au lieu d'un dictionnaire.Juste pour le fun:
la source
Utilisation du module de calendrier :
Nombre à abbr
calendar.month_abbr[month_number]
Abbr-to-Number
list(calendar.month_abbr).index(month_abbr)
la source
list(calendar.month_name).index('January')
Voici encore une autre façon de le faire.
la source
month_cal = dict((v,k) for v,k in zip(calendar.month_abbr[1:], range(1, 13)))
et puismonth_cal[shortMonth]
Source d'informations: Python Docs
Pour obtenir le numéro du mois à partir du nom du mois, utilisez le module datetime
la source
Voici une méthode plus complète qui peut également accepter les noms de mois complets
exemple:
la source
Un de plus:
la source
Pour obtenir le nom du mois à l'aide du numéro du mois, vous pouvez utiliser
time
:Et pour obtenir le numéro du mois en utilisant le nom du mois:
la source
S'appuyant sur les idées exprimées ci-dessus, ceci est efficace pour changer le nom d'un mois en son numéro de mois approprié:
la source
la source
Vous pouvez utiliser ci-dessous comme alternative.
from time import strptime
strptime('Feb','%b').tm_mon
import calendar
calendar.month_abbr[2]
oucalendar.month[2]
la source