private static double Round(double total, TimeStringFormatter.Rounding rounding, int decimalPlaces, double fancyUnits) { if (total <= 0) { return(0); } switch (rounding) { case TimeStringFormatter.Rounding.Floor: { return(Math.Floor(total)); } case TimeStringFormatter.Rounding.Ceiling: { return(Math.Ceiling(total)); } case TimeStringFormatter.Rounding.Round: { return(Math.Round(total)); } case TimeStringFormatter.Rounding.Decimal: { fancyUnits = 1; decimalPlaces = 0; break; } case TimeStringFormatter.Rounding.RoundedDecimal: { fancyUnits = 1; break; } case TimeStringFormatter.Rounding.FancyDecimal: { decimalPlaces = 0; break; } } if (decimalPlaces == 0) { return(total); } double num = Math.Floor(total); return(num + Math.Floor((total - num) * fancyUnits * ((double)decimalPlaces * 10)) / (10 * (double)decimalPlaces)); }
public string GetFormattingString(TimeSpan timePassed, TimeStringFormatter.Rounding rounding) { string str; object obj; string str1; int num = 2; int num1 = num; double num2 = 1; double num3 = num2; double num4 = TimeStringFormatter.Round(timePassed.TotalSeconds, rounding, num, num2); if (num4 <= 0) { str = this.lessThanASecond; } else if (num4 == 1) { str = this.aSecond; } else if (num4 >= 60) { int num5 = 2; num1 = num5; double num6 = 0.6; num3 = num6; double num7 = TimeStringFormatter.Round(timePassed.TotalMinutes, rounding, num5, num6); num4 = num7; if (num7 == 1) { str = this.aMinute; } else if (num4 >= 60) { int num8 = 2; num1 = num8; double num9 = 1; num3 = num9; double num10 = TimeStringFormatter.Round(timePassed.TotalHours, rounding, num8, num9); num4 = num10; if (num10 == 1) { str = this.aHour; } else if (num4 >= 24) { int num11 = 2; num1 = num11; double num12 = 0.24; num3 = num12; double num13 = TimeStringFormatter.Round(timePassed.TotalDays, rounding, num11, num12); num4 = num13; str = (num13 != 1 ? this.days : this.aDay); } else { str = this.hours; } } else { str = this.minutes; } } else { str = this.seconds; } if (rounding == TimeStringFormatter.Rounding.RoundedDecimal || rounding == TimeStringFormatter.Rounding.FancyDecimal || rounding == TimeStringFormatter.Rounding.RoundedFancyDecimal) { if (rounding == TimeStringFormatter.Rounding.RoundedDecimal || rounding == TimeStringFormatter.Rounding.RoundedFancyDecimal) { if (num1 != 2) { throw new NotSupportedException("We gotta add support for that"); } str1 = num4.ToString("0.00"); } else { str1 = num4.ToString(); } obj = (rounding == TimeStringFormatter.Rounding.FancyDecimal || rounding == TimeStringFormatter.Rounding.RoundedFancyDecimal ? str1.Replace('.', ':') : str1); } else { obj = (rounding == TimeStringFormatter.Rounding.Decimal || double.IsNaN(num4) || double.IsInfinity(num4) ? num4 : (int)num4); } return(string.Format(str, obj)); }