Exemplo n.º 1
0
        /// <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));
        }
Exemplo n.º 2
0
        /// <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);
        }