当前位置:  开发笔记 > 编程语言 > 正文

如何列出所有月份名称,例如组合?

如何解决《如何列出所有月份名称,例如组合?》经验,为你挑选了5个好方法。

目前我正在DateTime为每个月创建一个并将其格式化为仅包含月份.
还有其他或更好的方法吗?



1> Yona..:

您可以使用它DateTimeFormatInfo来获取该信息:

// Will return January
string name = DateTimeFormatInfo.CurrentInfo.GetMonthName(1);

或获得所有名称:

string[] names = DateTimeFormatInfo.CurrentInfo.MonthNames;

您还可以DateTimeFormatInfo基于CultureInfowith 实例化新的,DateTimeFormatInfo.GetInstance或者您可以使用当前文化的CultureInfo.DateTimeFormat属性.

var dateFormatInfo = CultureInfo.GetCultureInfo("en-GB").DateTimeFormat;

请记住,.Net中的日历最多支持13个月,因此,对于仅有12个月的日历(例如在en-US或fr中找到的日历),您将在末尾获得额外的空字符串.


你的第二个例子不会编译.您需要创建一个新的`DateTimeFormatInfo`实例或从静态类.eg`new DateTimeFormatInfo().MonthNames;`或`DateTimeFormatInfo.GetInstance().MonthNames调用它的`GetInstance()`方法.
我已经纠正了评论中提到的问题(将来你可以编辑帖子).

2> mmmeff..:

此方法允许您将几个月的键值对列表应用于其int对应项.我们使用Enumerable Ranges和LINQ生成一行.万岁,LINQ代码打高尔夫球!

var months = Enumerable.Range(1, 12).Select(i => new { I = i, M = DateTimeFormatInfo.CurrentInfo.GetMonthName(i) });

要将其应用于ASP下拉列表:

// 
ddlMonths.DataSource = months;
ddlMonths.DataTextField = "M";
ddlMonths.DataValueField = "I";
ddlMonths.DataBind();



3> Rohan West..:

您可以使用以下命令返回包含月份名称的字符串数组

System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.MonthNames



4> Dylan Beatti..:

它们被定义为Globalization命名空间中的数组.

using System.Globalization;

for (int i = 0; i < 12; i++) {
   Console.WriteLine(CultureInfo.CurrentUICulture.DateTimeFormat.MonthNames[i]);
}



5> Zachary Yate..:

尝试枚举月份名称:

for( int i = 1; i <= 12; i++ ){
  combo.Items.Add(CultureInfo.CurrentCulture.DateTimeFormat.MonthNames[i]);
}

它位于System.Globalization命名空间中.

希望有所帮助!

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有