![](/img/trans.png)
[英]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.