public static GetFirstDayOfWeek ( string regionId ) : DayOfWeek | ||
regionId | string | The Id of the region to get the first DayOfWeek for |
return | DayOfWeek |
/// <summary> /// GetDayOfWeek gets the first DayOfWeek for the RegionInfo /// </summary> /// <param name="regionInfo">The RegionInfo to get the first DayOfWeek for</param> /// <returns>The first DayOfWeek for the RegionInfo</returns> public static DayOfWeek GetDayOfWeek(this RegionInfo regionInfo) { return(RegionExtensions.GetFirstDayOfWeek(regionInfo.TwoLetterISORegionName)); }
/// <summary> /// CreateDateTimeFormatInfo creates a .NET DateTimeFormatInfo for the CLDR Culture /// </summary> /// <param name="culture">The Culture to get the DateTimeFormatInfo for</param> /// <returns>A .NET DateTimeFormatInfo for the CLDR Culture</returns> private static DateTimeFormatInfo CreateDateTimeFormatInfo(Culture culture) { System.Globalization.Calendar calendar = new GregorianCalendar(GregorianCalendarTypes.Localized); DateTimeFormatInfo dateTimeFormatInfo = new DateTimeFormatInfo(); dateTimeFormatInfo.Calendar = calendar; if (culture.Dates != null && culture.Dates.Calendars != null) { Types.Calendar gregorianCalendar = (from c in culture.Dates.Calendars where string.Compare(c.Id, "gregorian", StringComparison.InvariantCulture) == 0 select c).FirstOrDefault(); if (gregorianCalendar != null) { if (gregorianCalendar.AbbreviatedDayNames != null && gregorianCalendar.AbbreviatedDayNames.GetLength(0) == 7) { dateTimeFormatInfo.AbbreviatedDayNames = gregorianCalendar.AbbreviatedDayNames; } if (gregorianCalendar.DayNames != null && gregorianCalendar.DayNames.GetLength(0) == 7) { dateTimeFormatInfo.DayNames = gregorianCalendar.DayNames; } if (gregorianCalendar.ShortestDayNames != null && gregorianCalendar.ShortestDayNames.GetLength(0) == 7) { dateTimeFormatInfo.ShortestDayNames = gregorianCalendar.ShortestDayNames; } if (gregorianCalendar.AbbreviatedMonthNames != null) { dateTimeFormatInfo.AbbreviatedMonthNames = gregorianCalendar.AbbreviatedMonthNames; } if (gregorianCalendar.AbbreviatedMonthGenitiveNames != null) { dateTimeFormatInfo.AbbreviatedMonthGenitiveNames = gregorianCalendar.AbbreviatedMonthGenitiveNames; } if (gregorianCalendar.MonthNames != null) { dateTimeFormatInfo.MonthNames = gregorianCalendar.MonthNames; } if (gregorianCalendar.MonthGenitiveNames != null) { dateTimeFormatInfo.MonthGenitiveNames = gregorianCalendar.MonthGenitiveNames; } if (!string.IsNullOrEmpty(gregorianCalendar.AMDesignator)) { // AMDesignator must be 14 characters or less string amDesignator = gregorianCalendar.AMDesignator; dateTimeFormatInfo.AMDesignator = amDesignator.Substring(0, Math.Min(amDesignator.Length, 14)); } if (!string.IsNullOrEmpty(gregorianCalendar.PMDesignator)) { // PMDesignator must be 14 characters or less string pmDesignator = gregorianCalendar.PMDesignator; dateTimeFormatInfo.PMDesignator = pmDesignator.Substring(0, Math.Min(pmDesignator.Length, 14)); } dateTimeFormatInfo.CalendarWeekRule = CalendarWeekRule.FirstDay; if (culture.Identity.Region != null) { dateTimeFormatInfo.FirstDayOfWeek = RegionExtensions.GetFirstDayOfWeek(culture.Identity.Region.Id); } else { dateTimeFormatInfo.FirstDayOfWeek = RegionExtensions.GetFirstDayOfWeek(NCldr.RegionIdForTheWorld); } if (!string.IsNullOrEmpty(gregorianCalendar.FullDotNetDatePattern)) { // dateTimeFormatInfo.FullDateTimePattern = "dd MMMM yyyy HH:mm:ss"; dateTimeFormatInfo.FullDateTimePattern = gregorianCalendar.FullDotNetDatePattern; } if (!string.IsNullOrEmpty(gregorianCalendar.LongDotNetDatePattern)) { // dateTimeFormatInfo.LongDatePattern = "dd MMMM yyyy"; // dateTimeFormatInfo.MonthDayPattern = "dd MMMM"; // dateTimeFormatInfo.YearMonthPattern = "MMMM, yyyy"; dateTimeFormatInfo.LongDatePattern = gregorianCalendar.LongDotNetDatePattern; // CLDR does not have a month day pattern so make one by stripping out the year from the long date format dateTimeFormatInfo.MonthDayPattern = dateTimeFormatInfo.LongDatePattern.Replace("y", string.Empty); // CLDR does not have a year month pattern so make one by stripping out the day from the long date format dateTimeFormatInfo.YearMonthPattern = dateTimeFormatInfo.LongDatePattern.Replace("d", string.Empty); } if (!string.IsNullOrEmpty(gregorianCalendar.ShortDotNetDatePattern)) { // dateTimeFormatInfo.ShortDatePattern = "dd-MM-yyyy"; dateTimeFormatInfo.ShortDatePattern = gregorianCalendar.ShortDotNetDatePattern; } if (!string.IsNullOrEmpty(gregorianCalendar.LongDotNetTimePattern)) { // dateTimeFormatInfo.LongTimePattern = "HH:mm:ss"; dateTimeFormatInfo.LongTimePattern = gregorianCalendar.LongDotNetTimePattern; } if (!string.IsNullOrEmpty(gregorianCalendar.ShortDotNetTimePattern)) { // dateTimeFormatInfo.ShortTimePattern = "HH:mm"; dateTimeFormatInfo.ShortTimePattern = gregorianCalendar.ShortDotNetTimePattern; } dateTimeFormatInfo.DateSeparator = gregorianCalendar.DateSeparator; dateTimeFormatInfo.TimeSeparator = gregorianCalendar.TimeSeparator; } } return(dateTimeFormatInfo); }