Пример #1
0
        static string Str(decimal val, bool male, string seniorOne, string seniorTwo, string seniorFive, string juniorOne, string juniorTwo, string juniorFive, bool fractPart)
        {
            bool minus = false;

            if (val < 0)
            {
                val = -val; minus = true;
            }

            int n         = (int)val;
            int remainder = (int)((val - n + 0.005M) * 100);

            StringBuilder r = new StringBuilder();

            if (0 == n)
            {
                r.Append("Ноль ");
            }
            if (n % 1000 != 0)
            {
                r.Append(RusNumber.Str(n, male, seniorOne, seniorTwo, seniorFive));
            }
            else
            {
                r.Append(seniorFive);
            }

            n /= 1000;

            r.Insert(0, RusNumber.Str(n, false, "тысяча", "тысячи", "тысяч"));
            n /= 1000;

            r.Insert(0, RusNumber.Str(n, true, "миллион", "миллиона", "миллионов"));
            n /= 1000;

            r.Insert(0, RusNumber.Str(n, true, "миллиард", "миллиарда", "миллиардов"));
            n /= 1000;

            r.Insert(0, RusNumber.Str(n, true, "триллион", "триллиона", "триллионов"));
            n /= 1000;

            r.Insert(0, RusNumber.Str(n, true, "триллиард", "триллиарда", "триллиардов"));
            if (minus)
            {
                r.Insert(0, "минус ");
            }

            if (fractPart)
            {
                r.Append(remainder.ToString(" 00 "));
                r.Append(RusNumber.Case(remainder, juniorOne, juniorTwo, juniorFive));
            }
            //Делаем первую букву заглавной
            r[0] = char.ToUpper(r[0]);

            return(r.ToString());
        }
        public bool SendCoordinates(string authKey, int trackId, TrackPointList TrackPointList)
        {
            RemoteEndpointMessageProperty prop = (RemoteEndpointMessageProperty)OperationContext.Current.IncomingMessageProperties [RemoteEndpointMessageProperty.Name];

            if (prop != null)
            {
                logger.Info(RusNumber.Case(TrackPointList.Count, "Получена {3} координата по треку", "Получено {3} координаты по треку", "Получено {3} координат по треку")
                            + " {0} c ip{1}:{2}", trackId, prop.Address, prop.Port, TrackPointList.Count);
            }

            if (!CheckAuth(authKey))
            {
                return(false);
            }

            return(TracksService.ReceivedCoordinates(trackId, TrackPointList));
        }
Пример #3
0
        /// <summary>
        /// Возвращает строковое представление числа как период времени в формате [кол-во лет кол-во месяцев]
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string AsPeriod(this string value)
        {
            var str = string.Empty;

            // разбираем на составляющие
            var periodParts = value.Split('.');

            // по целой части бьем по падежам
            str += string.Format("{0} {1}",
                                 periodParts[0], RusNumber.Case(int.Parse(periodParts[0]), "год", "года", "лет"));

            // по дробной части бьем по падежам, если таковая имеется
            if (periodParts.Length > 1)
            {
                str += string.Format(" {0} {1}",
                                     periodParts[1], RusNumber.Case(int.Parse(periodParts[1]), "месяц", "месяца", "месяцев"));
            }

            return(str);
        }