[英]How to get the list of week start date (Monday) and end date (Sunday) for the year in C#
[英]How can I determine that the start of week is Monday or Sunday in different culture in C#
有些国家星期一作为一周的第一天,有些国家使用星期天。 在C#/ .Net中,图书馆全球化可以确定在不同国家开放的当前网页,但我没有找到任何有用的方法来确定哪一个国家使用哪一天作为周的开始。
使用此全球化TimeFormat
var firstDayOfWeek = CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek;
您可以使用文化的DateTimeFormatInfo
的FirstDayOfWewek
属性 。
var info = new System.Globalization.CultureInfo("de-DE");
info.DateTimeFormat.FirstDayOfWeek;
如果我理解你的话,你想要从国家代码 (例如“RU”,“FR”,“DE”等)获得一周的第一天,而不是来自CultureInfo
(这很明显):
// Russian culture, Russia
CultureInfo ci = new CultureInfo("ru-RU");
var firstDayOfWeek = ci.DateTimeFormat.FirstDayOfWeek;
// Monday
Console.Write(firstDayOfWeek);
对于国家/地区代码而言,这是一项更艰巨的任务:
// Just Russia given as ISO 2 letters country code
String CountryCode = "RU";
var days = CultureInfo.GetCultures(CultureTypes.SpecificCultures)
.Where(item => item.LCID != 4096) // Cultures without region
.Where(item => String.Equals(new RegionInfo(item.LCID).Name,
CountryCode,
StringComparison.OrdinalIgnoreCase))
.Select(item => item.DateTimeFormat.FirstDayOfWeek)
.Distinct()
.ToArray();
if (days.Length <= 0)
Console.Write("No such regions found, use default (Sunday?)");
else if (days.Length == 1)
Console.Write(days[0]); // <- this will return "Monday"
else
Console.Write("Too many variants: " + String.Join(", ", days));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.