我想在c#中获取月份数组.
这样的事:{ January , February , ... , December }
我怎么能这样做?请用C#发给我代码.谢谢
nmd*_*mdr 34
您还需要注意本地化问题:您可以使用:
string[] monthNames =
System.Globalization.CultureInfo.CurrentCulture
.DateTimeFormat.MonthGenitiveNames;
Run Code Online (Sandbox Code Playgroud)
通过一个名词变形在一些变形语言中引入了属格案例,在非变形语言中,它与英语介词"of"的等价物的使用相匹配.例如,俄罗斯(俄罗斯)"ru-RU"文化中的日期由日期编号和属性月份名称组成.
编辑:如果您需要英文月份名称,您可以将当前文化设置为en-US
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
Run Code Online (Sandbox Code Playgroud)
o.k*_*k.w 15
string[] monthNames = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.MonthNames;
foreach (string m in monthNames) // writing out
{
Console.WriteLine(m);
}
Run Code Online (Sandbox Code Playgroud)
输出:
January
February
March
April
May
June
July
August
September
October
November
December
Run Code Online (Sandbox Code Playgroud)
更新:
请注意,对于不同的语言环境/文化,输出可能不是英语.之前没有测试过.
仅限美国英语:
string[] monthNames = (new System.Globalization.CultureInfo("en-US")).DateTimeFormat.MonthNames;
Run Code Online (Sandbox Code Playgroud)
Wae*_*oul 11
string[] months = new string[] {"January", "February", "March", "April", "May",
"June", "July", "August", "September", "October", "November", "December"};
Run Code Online (Sandbox Code Playgroud)
希望能够教会如何应用范围函数来创建顺序事物的替代方法.
var startDate = new DateTime(2014,1,1);
var months = Enumerable.Range(0,11)
.Select(startDate.AddMonths);
.Select(m => m.ToString("yyyy MMMM"))
.ToList();
Run Code Online (Sandbox Code Playgroud)
它正在做的是创建一个DateTime对象(startDate)并使用该对象生成相对于它自己的所有其他日期.
Enumerable.Range(0,11)创建一个整数列表{0,1,2,3,4,5,6,7,8,9,10,11}
Select(startDate.AddMonths)将每个整数提供给startDate的AddMonths函数,该函数生成1月到12月的日期列表.
选择(m => m.ToString("yyyy MMMM")获取从1月到12月的每个日期并将它们转换为格式化字符串(在本例中为"2014年1月")
ToList()计算所有函数并将其作为字符串列表返回.