Je cherche à voir s'il existe une énumération officielle pendant des mois dans le framework .net.
Il me semble possible qu'il y en ait une, en raison de la fréquence d'utilisation du mois et du fait qu'il existe d'autres énumérations de ce type dans le framework .net.
Par exemple, il existe une énumération pour les jours de la semaine, System.DayOfWeek, qui comprend lundi, mardi, etc.
Je me demande s'il y en a un pour les mois de l'année, c'est-à-dire janvier, février, etc.
Est-ce que quelqu'un sait?
la source
Non, il n'y en a pas.
la source
Microsoft.VisualBasic.MonthName
?Non.
Voici celui que j'ai préparé plus tôt. (Version C #)
la source
NotSet
? Pourquoi ne pas commencer parJanuary = 1
? alors vous pourriez vous débarrasser du reste des missions aussi ..January
si, par exemple, il est utilisé comme propriété pour une classe. dans la plupart des cas, je ne veux pas cela, je veux qu'il ait une valeur `` nulle '' avant qu'il ne soit explicitement attribuéNotSet
est omis etJanuary = 1
(et le reste des valeurs sont 2, 3, etc.), la valeur par défaut de cette énumération serait(Month)0
DateTimeFormatInfo.CurrentInfo.MonthNames
(pas une énumération, mais je pense que l'instance CurrentInfo de DateTimeFormatInfo est ce que vous recherchez en général). Si vous voulez une liste déroulante, vous pouvez la construire comme ceci:la source
var months = Enumerable.Range(0, 11).Select(m => new KeyValuePair<int, string>(m + 1, DateTimeFormatInfo.CurrentInfo.MonthNames[m]));
Un trouvé dans l'énumération "MonthNamesType" de cet espace de noms: Microsoft.ServiceModel.Channels.Mail.ExchangeWebService.Exchange2007
L'emplacement fait un peu peur mais c'est quand même là.
la source
Qu'essayez-vous d'accomplir exactement?
si tout ce que vous voulez, ce sont douze chaînes avec les mois de l'année indiqués, alors cela est disponible via une chaîne de format personnalisée - appliquée pour toute instance d'une date / heure,
si vous souhaitez simplement pouvoir spécifier le mois en tant que propriété énumérée d'un autre type d'objet, la propriété Month d'un champ DateTime renvoie un entier de 1 à 12 ...
la source
Oui, il y en a certainement. Il fait partie de l'espace de noms Microsoft.VisualBasic ...
Et pour ceux d'entre vous qui ont un problème avec cet espace de noms, vous devez comprendre qu'il s'agit vraiment de .NET et qu'il ne mène nulle part .
Pour mémoire, la
MonthName
fonction appelle en interne ce qui suit ...la source
IEnumerable
mais ce n'est pas uneenum
aération. Donc ça ne marche pas.Certains calendriers ont en effet plus de 12 mois: http://en.wikipedia.org/wiki/Month mais je ne peux pas dire si c'est la raison pour laquelle MS n'a pas construit d'énumération en .NET.
Pour les paresseux comme moi qui auraient aimé un copier / coller, en VB:
la source
Je ne sais pas avec certitude, mais mon intuition est non. DateTime.Month renvoie un entier. S'il y avait une telle énumération, elle serait probablement retournée par DateTime.
la source
Je chercherais quelque chose comme ça pour coder avec, comme
contient ce nombre magique de 1. tandis que
est auto-documenté
la source
Une énumération serait plutôt utile, mais vous pouvez obtenir le résultat souhaité avec un format:
Cela renvoie le nom complet du mois (janvier, février, etc.). À utiliser
myDateTimeObject.ToString("MMM")
pour un nom court (janvier, février, mars, etc.).Si vous avez un numéro de mois particulier
mnthNum
, sans aucunDateTime
, vous pouvez toujours utiliser quelque chose comme ceci:ou
Mais cela semble un peu compliqué. Le premier exemple exige que se
mnthNum
situe entre 1 et 12. Le deuxième exemple autorise (presque) n'importe quel numéro de mois et n'est pas limité à 1 à 12.la source