Ich bin gespannt, ob es im .net-Framework seit Monaten eine offizielle Aufzählung gibt.
Es scheint mir möglich zu sein, dass es eine gibt, weil der Monat häufig verwendet wird und weil es im .net-Framework andere solche Aufzählungen gibt.
Zum Beispiel gibt es eine Aufzählung für die Wochentage, System.DayOfWeek, die Montag, Dienstag usw. Enthält.
Ich frage mich, ob es einen für die Monate im Jahr gibt, dh Januar, Februar usw.?
Weiß jemand?
c#
.net
datetime
enumeration
Mark Rogers
quelle
quelle
Nein, gibt es nicht.
quelle
Microsoft.VisualBasic.MonthName
?Nein.
Hier ist eine, die ich zuvor vorbereitet habe. (C # Version)
quelle
NotSet
? Warum nicht einfach anfangenJanuary = 1
? dann könnten Sie auch den Rest der AufgabenJanuary
wenn es beispielsweise als Eigenschaft für eine Klasse verwendet wird. in den meisten Fällen nicht wollen , ich , dass ich es eine ‚Null‘ Wert haben soll , bevor er ausdrücklich zugewiesen istNotSet
weggelassen wird undJanuary = 1
(und der Rest der Werte 2, 3 usw. ist), wäre der Standardwert dieser Aufzählung(Month)0
DateTimeFormatInfo.CurrentInfo.MonthNames
(Keine Aufzählung, aber ich denke, dass die CurrentInfo-Instanz von DateTimeFormatInfo das ist, wonach Sie im Allgemeinen suchen). Wenn Sie eine Dropdown-Liste möchten, können Sie diese folgendermaßen erstellen:quelle
var months = Enumerable.Range(0, 11).Select(m => new KeyValuePair<int, string>(m + 1, DateTimeFormatInfo.CurrentInfo.MonthNames[m]));
Es wurde eine in der Aufzählung "MonthNamesType" dieses Namespace gefunden: Microsoft.ServiceModel.Channels.Mail.ExchangeWebService.Exchange2007
Die Lage ist ein bisschen beängstigend, aber es ist trotzdem da.
quelle
Was genau versuchst du zu erreichen?
Wenn Sie nur zwölf Zeichenfolgen mit den angegebenen Monaten des Jahres wünschen, ist dies über eine benutzerdefinierte Formatzeichenfolge verfügbar, die für jede Instanz einer Datums- / Uhrzeitangabe angewendet wird.
Wenn Sie den Monat nur als Aufzählungseigenschaft eines anderen Objekttyps angeben möchten, gibt die Month-Eigenschaft eines DateTime-Felds eine Ganzzahl von 1 bis 12 zurück.
quelle
Ja, das gibt es sicherlich. Es ist Teil des Microsoft.VisualBasic-Namespace ...
Und für diejenigen unter Ihnen, die ein Problem mit diesem Namespace haben, sollten Sie verstehen, dass es sich wirklich um .NET handelt und es nirgendwohin geht .
Für die Aufzeichnung
MonthName
ruft die Funktion intern Folgendes auf ...quelle
IEnumerable
aber keineenum
Eration. Also funktioniert es nicht.Einige Kalender haben in der Tat mehr als 12 Monate: http://en.wikipedia.org/wiki/Month, aber ich kann nicht sagen, ob dies der Grund war, warum MS keine Aufzählung in .NET erstellt hat.
Für die Faulen wie mich, die gerne kopiert / eingefügt hätten, in VB:
quelle
Ich weiß es nicht genau, aber meine Vermutung ist nein. DateTime.Month gibt eine Ganzzahl zurück. Wenn es eine solche Aufzählung gäbe, würde sie wahrscheinlich von DateTime zurückgegeben.
quelle
Ich würde nach so etwas suchen, mit dem ich programmieren kann
hat diese magische Zahl von 1 drin. wohingegen
ist selbstdokumentierend
quelle
Eine Aufzählung wäre ziemlich nützlich, aber Sie können das gewünschte Ergebnis mit einem Format erhalten:
Dies gibt den vollständigen Monatsnamen (Januar, Februar usw.) zurück. Verwendung
myDateTimeObject.ToString("MMM")
für Kurznamen (Jan, Feb, Mar usw.).Wenn Sie eine bestimmte Monatszahl
mnthNum
ohne eine habenDateTime
, können Sie immer Folgendes verwenden:oder
Aber das scheint ein bisschen chaotisch. Das erste Beispiel erfordert einen Wert
mnthNum
zwischen 1 und 12. Das zweite Beispiel erlaubt (fast) jede Monatszahl und ist nicht auf 1 bis 12 beschränkt.quelle