108

.net フレームワークに数か月の正式な列挙があるかどうかを調べています。

月の使用が一般的であり、.net フレームワークにはそのような列挙が他にもあるため、1 つある可能性があるように思えます。

たとえば、月曜日、火曜日などを含む System.DayOfWeek という曜日の列挙があります。

1 月、2 月など、1 年の月に対応するものがあるかどうか疑問に思っています。

誰か知っていますか?

4

12 に答える 12

123

ありませんが、月の名前が必要な場合は、次を使用できます。

CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName (DateTime.Now.Month);

文字列表現 (この場合は現在の月) を返します。GetMonth1 から 13 までの引数を取ることに注意してください。1 月は 1、13 は空白文字列です。

于 2009-05-22T19:27:57.207 に答える
83

いいえ、ありません。

于 2009-05-22T19:27:29.967 に答える
48

.net フレームワークに数か月の正式な列挙があるかどうかを調べています。

いいえ。

こちらは以前用意したもの。(C#版)

public enum Month
{
    NotSet = 0,
    January = 1,
    February = 2,
    March = 3,
    April = 4,
    May = 5,
    June = 6,
    July = 7,
    August = 8,
    September = 9,
    October = 10,
    November = 11,
    December = 12
}
于 2011-03-30T02:59:48.237 に答える
30

DateTimeFormatInfo.CurrentInfo.MonthNames(列挙型ではありませんが、一般的に探しているのは DateTimeFormatInfo の CurrentInfo インスタンスだと思います)。ドロップダウン リストが必要な場合は、次のように作成できます。

List<string> monthNames = DateTimeFormatInfo.CurrentInfo.MonthNames.Take(12).ToList();
var monthSelectList = monthNames.Select(
   m => new { Id = monthNames.IndexOf(m) + 1, Name = m });
于 2011-02-19T01:45:00.643 に答える
2

一部のカレンダーには確かに12か月以上あります:http://en.wikipedia.org/wiki/Monthしかし、それがMSが.NETで列挙型を構築しなかった理由であるかどうかはわかりません。

コピー/貼り付けが好きだった私のような怠惰な人のために、VBで:

Public Enum MonthsOfYear
    January = 1
    February = 2
    March = 3
    April = 4
    May = 5
    June = 6
    July = 7
    August = 8
    September = 9
    October = 10
    November = 11
    December = 12
End Enum
于 2010-12-14T21:05:30.423 に答える
2

私はこのようなコードを探しています。

        if (DateTime.Now.Month != 1) // can't run this test in January.

このマジック ナンバー 1 が含まれています。一方

        if (DateTime.Now.Month != DateTime.MonthsOfYear.January) 

自己記録的です

于 2010-01-19T16:38:25.450 に答える
1

確かなことはわかりませんが、私の予感はノーです。DateTime.Month は整数を返します。そのような列挙があった場合、おそらく DateTime によって返されます。

于 2009-05-22T19:28:07.703 に答える
0

列挙型はかなり便利ですが、次の形式で目的の結果を得ることができます。

DateTime myDateTimeObject=DateTime.Now; //(for example)
string monthName = myDateTimeObject.ToString("MMMM");

これは完全な月の名前 (January、February など) を返します。myDateTimeObject.ToString("MMM")短い名前 (Jan、Feb、Mar など) に使用します。

mnthNumのない特定の月番号 がある場合は、次のDateTimeようなものをいつでも使用できます。

string monthName=(new DateTime(2000,mnthNum,1)).ToString("MMMM");

また

string monthName=((new DateTime(2000,1,1)).AddMonths(mnthNum-1)ToString("MMMM");

しかし、それは少し厄介なようです。最初の例でmnthNumは、1 から 12 の間である必要があります。2 番目の例では、(ほぼ) 任意の月番号を使用でき、1 から 12 に制限されていません。

于 2012-11-15T00:34:19.400 に答える
0

[0 - 11] var MonthNames = new List<string>(DateTimeFormatInfo.CurrentInfo.MonthNames);

于 2021-11-02T12:36:28.347 に答える