/// <summary> /// Gets an array of either the names of the months or days of the week according to the client's user preferences and calendar. /// </summary> /// <param name="options"></param> public static string getDateNames(string options) { var globalOptions = ReadOptions(options); int type = 0; //default wide int item = 0; //default months if (globalOptions.AdditionalOptions != null) { if (globalOptions.AdditionalOptions.Type != null) { string t = globalOptions.AdditionalOptions.Type; if (t.Equals(GlobalizationOptions.Narrow)) { type++; } } if (globalOptions.AdditionalOptions.Item != null) { string t = globalOptions.AdditionalOptions.Item; if (t.Equals(GlobalizationOptions.Days)) { item += 10; } } } //determine return value int method = item + type; string[] namesArray; CultureInfo currentCulture = CultureInfo.CurrentCulture; if (method == 1) //months and narrow { namesArray = currentCulture.DateTimeFormat.AbbreviatedMonthNames; } else if (method == 10) //days and wide { namesArray = currentCulture.DateTimeFormat.DayNames; } else if (method == 11) //days and narrow { namesArray = currentCulture.DateTimeFormat.AbbreviatedDayNames; } else //default: months and wide { namesArray = currentCulture.DateTimeFormat.MonthNames; } return(WrapIntoJSON(namesArray)); }
/// <summary> /// Gets a pattern string for formatting and parsing numbers according to the client's user preferences. /// </summary> /// <param name="options"></param> public static NumberPattern getNumberPattern(string options) { var globalOptions = ReadOptions(options); CultureInfo cultureInfo = CultureInfo.CurrentCulture; NumberFormatInfo formatInfo = cultureInfo.NumberFormat; string numberFormatType = (globalOptions.AdditionalOptions == null || string.IsNullOrEmpty(globalOptions.AdditionalOptions.Type)) ? GlobalizationOptions.Decimal : globalOptions.AdditionalOptions.Type; NumberPattern pattern = null; string symbol; // TODO find out how to get format pattern and the number of fraction digits switch (numberFormatType) { case GlobalizationOptions.Percent: { symbol = formatInfo.PercentSymbol; pattern = new NumberPattern("", symbol, 0, formatInfo.PercentPositivePattern.ToString(), formatInfo.NegativeSign, 0, formatInfo.PercentDecimalSeparator, formatInfo.PercentGroupSeparator); break; } case GlobalizationOptions.Currency: { symbol = formatInfo.CurrencySymbol; pattern = new NumberPattern("", symbol, 0, formatInfo.CurrencyPositivePattern.ToString(), formatInfo.NegativeSign, 0, formatInfo.CurrencyDecimalSeparator, formatInfo.CurrencyGroupSeparator); break; } default: { symbol = formatInfo.NumberDecimalSeparator; pattern = new NumberPattern("", symbol, 0, "", formatInfo.NegativeSign, 0, formatInfo.NumberDecimalSeparator, formatInfo.NumberGroupSeparator); break; } } return(pattern); }