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)); }
/// <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); }