static CalendarData() { CalendarData data; data = new CalendarData { sNativeName = "Gregorian Calendar", iTwoDigitYearMax = 0x7ed, iCurrentEra = 1, saShortDates = new string[] { "MM/dd/yyyy", "yyyy-MM-dd" }, saLongDates = new string[] { "dddd, dd MMMM yyyy" }, saYearMonths = new string[] { "yyyy MMMM" }, sMonthDay = "MMMM dd", saEraNames = new string[] { "A.D." }, saAbbrevEraNames = new string[] { "AD" }, saAbbrevEnglishEraNames = new string[] { "AD" }, saDayNames = new string[] { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }, saAbbrevDayNames = new string[] { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }, saSuperShortDayNames = new string[] { "Su", "Mo", "Tu", "We", "Th", "Fr", "Sa" }, saMonthNames = new string[] { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December", string.Empty }, saAbbrevMonthNames = new string[] { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", string.Empty }, saMonthGenitiveNames = data.saMonthNames, saAbbrevMonthGenitiveNames = data.saAbbrevMonthNames, saLeapYearMonthNames = data.saMonthNames, bUseUserOverrides = false }; Invariant = data; }
private static EraInfo[]? IcuGetJapaneseEras() { if (GlobalizationMode.Invariant) { return(null); } Debug.Assert(!GlobalizationMode.UseNls); string[]? eraNames; if (!CalendarData.EnumCalendarInfo("ja-JP", CalendarId.JAPAN, CalendarDataType.EraNames, out eraNames)) { return(null); } List <EraInfo> eras = new List <EraInfo>(); int lastMaxYear = GregorianCalendar.MaxYear; int latestEra = Interop.Globalization.GetLatestJapaneseEra(); for (int i = latestEra; i >= 0; i--) { DateTime dt; if (!GetJapaneseEraStartDate(i, out dt)) { return(null); } if (dt < s_calendarMinValue) { // only populate the Eras that are valid JapaneseCalendar date times break; } eras.Add(new EraInfo(i, dt.Year, dt.Month, dt.Day, dt.Year - 1, 1, lastMaxYear - dt.Year + 1, eraNames ![i], GetAbbreviatedEraName(eraNames, i), ""));
static CalendarData() { CalendarData data; data = new CalendarData { sNativeName = "Gregorian Calendar", iTwoDigitYearMax = 0x7ed, iCurrentEra = 1, saShortDates = new string[] { "MM/dd/yyyy", "yyyy-MM-dd" }, saLongDates = new string[] { "dddd, dd MMMM yyyy" }, saYearMonths = new string[] { "yyyy MMMM" }, sMonthDay = "MMMM dd", saEraNames = new string[] { "A.D." }, saAbbrevEraNames = new string[] { "AD" }, saAbbrevEnglishEraNames = new string[] { "AD" }, saDayNames = new string[] { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }, saAbbrevDayNames = new string[] { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }, saSuperShortDayNames = new string[] { "Su", "Mo", "Tu", "We", "Th", "Fr", "Sa" }, saMonthNames = new string[] { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December", string.Empty }, saAbbrevMonthNames = new string[] { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", string.Empty }, saMonthGenitiveNames = data.saMonthNames, saAbbrevMonthGenitiveNames = data.saAbbrevMonthNames, saLeapYearMonthNames = data.saMonthNames, bUseUserOverrides = false }; Invariant = data; }
// Token: 0x06002CC4 RID: 11460 RVA: 0x000AB068 File Offset: 0x000A9268 internal void FixupWin7MonthDaySemicolonBug() { int num = CalendarData.FindUnescapedCharacter(this.sMonthDay, ';'); if (num > 0) { this.sMonthDay = this.sMonthDay.Substring(0, num); } }
internal void FixupWin7MonthDaySemicolonBug() { int unescapedCharacter = CalendarData.FindUnescapedCharacter(this.sMonthDay, ';'); if (unescapedCharacter <= 0) { return; } this.sMonthDay = this.sMonthDay.Substring(0, unescapedCharacter); }
internal static int GetSystemTwoDigitYearSetting(int CalID, int defaultYearValue) { int num = CalendarData.nativeGetTwoDigitYearMax(CalID); if (num < 0) { num = defaultYearValue; } return(num); }
internal static int GetSystemTwoDigitYearSetting(CalendarId CalID, int defaultYearValue) { int twoDigitYearMax = CalendarData.GetTwoDigitYearMax(CalID); if (twoDigitYearMax < 0) { twoDigitYearMax = defaultYearValue; } return(twoDigitYearMax); }
private static EraInfo[]? GetJapaneseEras() { if (GlobalizationMode.Invariant) { return(null); } string[] eraNames; if (!CalendarData.EnumCalendarInfo("ja-JP", CalendarId.JAPAN, CalendarDataType.EraNames, out eraNames)) { return(null); } string[] abbrevEnglishEraNames; if (!CalendarData.EnumCalendarInfo("en", CalendarId.JAPAN, CalendarDataType.AbbrevEraNames, out abbrevEnglishEraNames)) { return(null); } List <EraInfo> eras = new List <EraInfo>(); int lastMaxYear = GregorianCalendar.MaxYear; int latestEra = Interop.Globalization.GetLatestJapaneseEra(); for (int i = latestEra; i >= 0; i--) { DateTime dt; if (!GetJapaneseEraStartDate(i, out dt)) { return(null); } if (dt < s_calendarMinValue) { // only populate the Eras that are valid JapaneseCalendar date times break; } eras.Add(new EraInfo(i, dt.Year, dt.Month, dt.Day, dt.Year - 1, 1, lastMaxYear - dt.Year + 1, eraNames[i], GetAbbreviatedEraName(eraNames, i), abbrevEnglishEraNames[i])); lastMaxYear = dt.Year; } // remap the Era numbers, now that we know how many there will be for (int i = 0; i < eras.Count; i++) { eras[i].era = eras.Count - i; } return(eras.ToArray()); }
static bool nativeGetCalendarData(CalendarData data, string localeName, int calendarId) { // TODO: Convert calendar-id to mono runtime calendar-id when it's used if (data.fill_calendar_data(localeName.ToLowerInvariant(), calendarId)) { if ((CalendarId)calendarId == CalendarId.HEBREW) { // HACK: Generate leap month names because the native code does not do it // and tests would fail to round-trip dates on leap years. // https://github.com/mono/mono/issues/16623 data.saMonthNames = HEBREW_MONTH_NAMES; data.saLeapYearMonthNames = HEBREW_LEAP_MONTH_NAMES; } return(true); } return(false); }
// Invariant constructor static CalendarData() { // Set our default/gregorian US calendar data // Calendar IDs are 1-based, arrays are 0 based. CalendarData invariant = new CalendarData(); // Set default data for calendar // Note that we don't load resources since this IS NOT supposed to change (by definition) invariant.sNativeName = "Gregorian Calendar"; // Calendar Name // Year invariant.iTwoDigitYearMax = 2029; // Max 2 digit year (for Y2K bug data entry) invariant.iCurrentEra = 1; // Current era # // Formats invariant.saShortDates = new String[] { "MM/dd/yyyy", "yyyy-MM-dd" }; // short date format invariant.saLongDates = new String[] { "dddd, dd MMMM yyyy"}; // long date format invariant.saYearMonths = new String[] { "yyyy MMMM" }; // year month format invariant.sMonthDay = "MMMM dd"; // Month day pattern // Calendar Parts Names invariant.saEraNames = new String[] { "A.D." }; // Era names invariant.saAbbrevEraNames = new String[] { "AD" }; // Abbreviated Era names invariant.saAbbrevEnglishEraNames=new String[] { "AD" }; // Abbreviated era names in English invariant.saDayNames = new String[] { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" };// day names invariant.saAbbrevDayNames = new String[] { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; // abbreviated day names invariant.saSuperShortDayNames = new String[] { "Su", "Mo", "Tu", "We", "Th", "Fr", "Sa" }; // The super short day names invariant.saMonthNames = new String[] { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December", String.Empty}; // month names invariant.saAbbrevMonthNames = new String[] { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", String.Empty}; // abbreviated month names invariant.saMonthGenitiveNames = invariant.saMonthNames; // Genitive month names (same as month names for invariant) invariant.saAbbrevMonthGenitiveNames=invariant.saAbbrevMonthNames; // Abbreviated genitive month names (same as abbrev month names for invariant) invariant.saLeapYearMonthNames = invariant.saMonthNames; // leap year month names are unused in Gregorian English (invariant) invariant.bUseUserOverrides = false; // Calendar was built, go ahead and assign it... Invariant = invariant; }
public CalendarData GetCalendar(int calendarId) { // arrays are 0 based, calendarIds are 1 based int calendarIndex = calendarId - 1; // Have to have calendars if (calendars == null) { calendars = new CalendarData[CalendarData.MAX_CALENDARS]; } var calendarData = calendars[calendarIndex]; if (calendarData == null) { calendarData = new CalendarData(sRealName, calendarId, bUseOverrides); calendars [calendarIndex] = calendarData; } return(calendarData); }
// Invariant constructor static CalendarData() { // Set our default/gregorian US calendar data // Calendar IDs are 1-based, arrays are 0 based. CalendarData invariant = new CalendarData(); // Set default data for calendar // Note that we don't load resources since this IS NOT supposed to change (by definition) invariant.sNativeName = "Gregorian Calendar"; // Calendar Name // Year invariant.iTwoDigitYearMax = 2029; // Max 2 digit year (for Y2K bug data entry) invariant.iCurrentEra = 1; // Current era # // Formats invariant.saShortDates = new String[] { "MM/dd/yyyy", "yyyy-MM-dd" }; // short date format invariant.saLongDates = new String[] { "dddd, dd MMMM yyyy" }; // long date format invariant.saYearMonths = new String[] { "yyyy MMMM" }; // year month format invariant.sMonthDay = "MMMM dd"; // Month day pattern // Calendar Parts Names invariant.saEraNames = new String[] { "A.D." }; // Era names invariant.saAbbrevEraNames = new String[] { "AD" }; // Abbreviated Era names invariant.saAbbrevEnglishEraNames = new String[] { "AD" }; // Abbreviated era names in English invariant.saDayNames = new String[] { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }; // day names invariant.saAbbrevDayNames = new String[] { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; // abbreviated day names invariant.saSuperShortDayNames = new String[] { "Su", "Mo", "Tu", "We", "Th", "Fr", "Sa" }; // The super short day names invariant.saMonthNames = new String[] { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December", String.Empty }; // month names invariant.saAbbrevMonthNames = new String[] { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", String.Empty }; // abbreviated month names invariant.saMonthGenitiveNames = invariant.saMonthNames; // Genitive month names (same as month names for invariant) invariant.saAbbrevMonthGenitiveNames = invariant.saAbbrevMonthNames; // Abbreviated genitive month names (same as abbrev month names for invariant) invariant.saLeapYearMonthNames = invariant.saMonthNames; // leap year month names are unused in Gregorian English (invariant) invariant.bUseUserOverrides = false; // Calendar was built, go ahead and assign it... Invariant = invariant; }
private static extern bool nativeGetCalendarData(CalendarData data, String localeName, int calendar);
internal CalendarData GetCalendar(CalendarId calendarId) { Contract.Assert(calendarId > 0 && calendarId <= CalendarId.LAST_CALENDAR, "[CultureData.GetCalendar] Expect calendarId to be in a valid range"); // arrays are 0 based, calendarIds are 1 based int calendarIndex = (int)calendarId - 1; // Have to have calendars if (_calendars == null) { _calendars = new CalendarData[CalendarData.MAX_CALENDARS]; } // we need the following local variable to avoid returning null // when another thread creates a new array of CalendarData (above) // right after we insert the newly created CalendarData (below) CalendarData calendarData = _calendars[calendarIndex]; // Make sure that calendar has data if (calendarData == null) { Contract.Assert(_sWindowsName != null, "[CultureData.GetCalendar] Expected this.sWindowsName to be populated by already"); calendarData = new CalendarData(_sWindowsName, calendarId, this.UseUserOverride); _calendars[calendarIndex] = calendarData; } return calendarData; }
internal CalendarData GetCalendar(int calendarId) { int index = calendarId - 1; if (this.calendars == null) { this.calendars = new CalendarData[0x17]; } CalendarData data = this.calendars[index]; if ((data == null) || this.UseUserOverride) { data = new CalendarData(this.sWindowsName, calendarId, this.UseUserOverride); if ((IsOsWin7OrPrior() && !this.IsUserCustomCulture) && !this.IsReplacementCulture) { data.FixupWin7MonthDaySemicolonBug(); } this.calendars[index] = data; } return data; }
private static extern bool nativeGetCalendarData(CalendarData data, String localeName, int calendar);
internal CalendarData(string localeName, int calendarId, bool bUseUserOverrides) { this.bUseUserOverrides = bUseUserOverrides; if (!CalendarData.nativeGetCalendarData(this, localeName, calendarId)) { if (this.sNativeName == null) { this.sNativeName = string.Empty; } if (this.saShortDates == null) { this.saShortDates = CalendarData.Invariant.saShortDates; } if (this.saYearMonths == null) { this.saYearMonths = CalendarData.Invariant.saYearMonths; } if (this.saLongDates == null) { this.saLongDates = CalendarData.Invariant.saLongDates; } if (this.sMonthDay == null) { this.sMonthDay = CalendarData.Invariant.sMonthDay; } if (this.saEraNames == null) { this.saEraNames = CalendarData.Invariant.saEraNames; } if (this.saAbbrevEraNames == null) { this.saAbbrevEraNames = CalendarData.Invariant.saAbbrevEraNames; } if (this.saAbbrevEnglishEraNames == null) { this.saAbbrevEnglishEraNames = CalendarData.Invariant.saAbbrevEnglishEraNames; } if (this.saDayNames == null) { this.saDayNames = CalendarData.Invariant.saDayNames; } if (this.saAbbrevDayNames == null) { this.saAbbrevDayNames = CalendarData.Invariant.saAbbrevDayNames; } if (this.saSuperShortDayNames == null) { this.saSuperShortDayNames = CalendarData.Invariant.saSuperShortDayNames; } if (this.saMonthNames == null) { this.saMonthNames = CalendarData.Invariant.saMonthNames; } if (this.saAbbrevMonthNames == null) { this.saAbbrevMonthNames = CalendarData.Invariant.saAbbrevMonthNames; } } this.saShortDates = CultureData.ReescapeWin32Strings(this.saShortDates); this.saLongDates = CultureData.ReescapeWin32Strings(this.saLongDates); this.saYearMonths = CultureData.ReescapeWin32Strings(this.saYearMonths); this.sMonthDay = CultureData.ReescapeWin32String(this.sMonthDay); if ((int)(ushort)calendarId == 4) { this.sNativeName = !CultureInfo.IsTaiwanSku ? string.Empty : "中華民國曆"; } if (this.saMonthGenitiveNames == null || string.IsNullOrEmpty(this.saMonthGenitiveNames[0])) { this.saMonthGenitiveNames = this.saMonthNames; } if (this.saAbbrevMonthGenitiveNames == null || string.IsNullOrEmpty(this.saAbbrevMonthGenitiveNames[0])) { this.saAbbrevMonthGenitiveNames = this.saAbbrevMonthNames; } if (this.saLeapYearMonthNames == null || string.IsNullOrEmpty(this.saLeapYearMonthNames[0])) { this.saLeapYearMonthNames = this.saMonthNames; } this.InitializeEraNames(localeName, calendarId); this.InitializeAbbreviatedEraNames(localeName, calendarId); if (calendarId == 3) { this.saAbbrevEnglishEraNames = JapaneseCalendar.EnglishEraNames(); } else { this.saAbbrevEnglishEraNames = new string[1] { "" } }; this.iCurrentEra = this.saEraNames.Length; }
static CalendarData() { CalendarData calendarData1 = new CalendarData(); calendarData1.sNativeName = "Gregorian Calendar"; calendarData1.iTwoDigitYearMax = 2029; calendarData1.iCurrentEra = 1; calendarData1.saShortDates = new string[2] { "MM/dd/yyyy", "yyyy-MM-dd" }; calendarData1.saLongDates = new string[1] { "dddd, dd MMMM yyyy" }; calendarData1.saYearMonths = new string[1] { "yyyy MMMM" }; calendarData1.sMonthDay = "MMMM dd"; calendarData1.saEraNames = new string[1] { "A.D." }; calendarData1.saAbbrevEraNames = new string[1] { "AD" }; calendarData1.saAbbrevEnglishEraNames = new string[1] { "AD" }; calendarData1.saDayNames = new string[7] { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }; calendarData1.saAbbrevDayNames = new string[7] { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; calendarData1.saSuperShortDayNames = new string[7] { "Su", "Mo", "Tu", "We", "Th", "Fr", "Sa" }; calendarData1.saMonthNames = new string[13] { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December", string.Empty }; calendarData1.saAbbrevMonthNames = new string[13] { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", string.Empty }; CalendarData calendarData2 = calendarData1; string[] strArray1 = calendarData2.saMonthNames; calendarData2.saMonthGenitiveNames = strArray1; CalendarData calendarData3 = calendarData1; string[] strArray2 = calendarData3.saAbbrevMonthNames; calendarData3.saAbbrevMonthGenitiveNames = strArray2; CalendarData calendarData4 = calendarData1; string[] strArray3 = calendarData4.saMonthNames; calendarData4.saLeapYearMonthNames = strArray3; calendarData1.bUseUserOverrides = false; CalendarData.Invariant = calendarData1; }
internal static CalendarData GetCalendarData(int calendarId) { return(CultureInfo.GetCultureInfo(CalendarData.CalendarIdToCultureName(calendarId)).m_cultureData.GetCalendar(calendarId)); }
public CalendarData GetCalendar (int calendarId) { // arrays are 0 based, calendarIds are 1 based int calendarIndex = calendarId - 1; // Have to have calendars if (calendars == null) { calendars = new CalendarData[CalendarData.MAX_CALENDARS]; } var calendarData = calendars[calendarIndex]; if (calendarData == null) { calendarData = new CalendarData (sRealName, calendarId, bUseOverrides); calendars [calendarIndex] = calendarData; } return calendarData; }
static bool nativeGetCalendarData (CalendarData data, string localeName, int calendarId) { // TODO: Convert calendar-id to mono runtime calendar-id when it's used return data.fill_calendar_data (localeName.ToLowerInvariant (), calendarId); }
// Token: 0x06002CC2 RID: 11458 RVA: 0x000AAF94 File Offset: 0x000A9194 internal static CalendarData GetCalendarData(int calendarId) { string name = CalendarData.CalendarIdToCultureName(calendarId); return(CultureInfo.GetCultureInfo(name).m_cultureData.GetCalendar(calendarId)); }
internal CalendarData GetCalendar(int calendarId) { Contract.Assert(calendarId > 0 && calendarId <= CalendarData.MAX_CALENDARS, "[CultureData.GetCalendar] Expect calendarId to be in a valid range"); // arrays are 0 based, calendarIds are 1 based int calendarIndex = calendarId - 1; // Have to have calendars if (calendars == null) { calendars = new CalendarData[CalendarData.MAX_CALENDARS]; } // we need the following local variable to avoid returning null // when another thread creates a new array of CalendarData (above) // right after we insert the newly created CalendarData (below) CalendarData calendarData = calendars[calendarIndex]; // Make sure that calendar has data if (calendarData == null || UseUserOverride) { Contract.Assert(this.sWindowsName != null, "[CultureData.GetCalendar] Expected this.sWindowsName to be populated by COMNlsInfo::nativeInitCultureData already"); calendarData = new CalendarData(this.sWindowsName, calendarId, this.UseUserOverride); #if !FEATURE_CORECLR //Work around issue where Win7 data for MonthDay contains invalid two sets of data separated by semicolon //even though MonthDay is not enumerated if (IsOsWin7OrPrior() && !IsSupplementalCustomCulture && !IsReplacementCulture) { calendarData.FixupWin7MonthDaySemicolonBug(); } #endif calendars[calendarIndex] = calendarData; } return calendarData; }
static bool nativeGetCalendarData(CalendarData data, string localeName, int calendarId) { // TODO: Convert calendar-id to mono runtime calendar-id when it's used return(data.fill_calendar_data(localeName.ToLowerInvariant(), calendarId)); }