// Token: 0x0600024D RID: 589 RVA: 0x0000D410 File Offset: 0x0000B610 public static string DefaultHumanize(DateTime input, DateTime comparisonBase, CultureInfo culture) { Tense tense = (input > comparisonBase) ? Tense.Future : Tense.Past; TimeSpan ts = new TimeSpan(Math.Abs(comparisonBase.Ticks - input.Ticks)); IFormatter formatter = Configurator.GetFormatter(culture); if (ts.TotalMilliseconds < 500.0) { return(formatter.DateHumanize(TimeUnit.Millisecond, tense, 0)); } if (ts.TotalSeconds < 60.0) { return(formatter.DateHumanize(TimeUnit.Second, tense, ts.Seconds)); } if (ts.TotalSeconds < 120.0) { return(formatter.DateHumanize(TimeUnit.Minute, tense, 1)); } if (ts.TotalMinutes < 60.0) { return(formatter.DateHumanize(TimeUnit.Minute, tense, ts.Minutes)); } if (ts.TotalMinutes < 90.0) { return(formatter.DateHumanize(TimeUnit.Hour, tense, 1)); } if (ts.TotalHours < 24.0) { return(formatter.DateHumanize(TimeUnit.Hour, tense, ts.Hours)); } if (ts.TotalHours < 48.0) { int days = Math.Abs((input.Date - comparisonBase.Date).Days); return(formatter.DateHumanize(TimeUnit.Day, tense, days)); } if (ts.TotalDays < 28.0) { return(formatter.DateHumanize(TimeUnit.Day, tense, ts.Days)); } if (ts.TotalDays >= 28.0 && ts.TotalDays < 30.0) { if (comparisonBase.Date.AddMonths((tense == Tense.Future) ? 1 : -1) == input.Date) { return(formatter.DateHumanize(TimeUnit.Month, tense, 1)); } return(formatter.DateHumanize(TimeUnit.Day, tense, ts.Days)); } else { if (ts.TotalDays < 345.0) { int months = Convert.ToInt32(Math.Floor(ts.TotalDays / 29.5)); return(formatter.DateHumanize(TimeUnit.Month, tense, months)); } int years = Convert.ToInt32(Math.Floor(ts.TotalDays / 365.0)); if (years == 0) { years = 1; } return(formatter.DateHumanize(TimeUnit.Year, tense, years)); } }
// Token: 0x0600024C RID: 588 RVA: 0x0000D1E8 File Offset: 0x0000B3E8 public static string PrecisionHumanize(DateTime input, DateTime comparisonBase, double precision, CultureInfo culture) { TimeSpan ts = new TimeSpan(Math.Abs(comparisonBase.Ticks - input.Ticks)); Tense tense = (input > comparisonBase) ? Tense.Future : Tense.Past; int seconds = ts.Seconds; int minutes = ts.Minutes; int hours = ts.Hours; int days = ts.Days; int years = 0; int months = 0; if ((double)ts.Milliseconds >= 999.0 * precision) { seconds++; } if ((double)seconds >= 59.0 * precision) { minutes++; } if ((double)minutes >= 59.0 * precision) { hours++; } if ((double)hours >= 23.0 * precision) { days++; } if ((double)days >= 30.0 * precision & days <= 31) { months = 1; } if (days > 31 && (double)days < 365.0 * precision) { int factor = Convert.ToInt32(Math.Floor((double)days / 30.0)); int maxMonths = Convert.ToInt32(Math.Ceiling((double)days / 30.0)); months = (((double)days >= 30.0 * ((double)factor + precision)) ? maxMonths : (maxMonths - 1)); } if ((double)days >= 365.0 * precision && days <= 366) { years = 1; } if (days > 365) { int factor2 = Convert.ToInt32(Math.Floor((double)days / 365.0)); int maxMonths2 = Convert.ToInt32(Math.Ceiling((double)days / 365.0)); years = (((double)days >= 365.0 * ((double)factor2 + precision)) ? maxMonths2 : (maxMonths2 - 1)); } IFormatter formatter = Configurator.GetFormatter(culture); if (years > 0) { return(formatter.DateHumanize(TimeUnit.Year, tense, years)); } if (months > 0) { return(formatter.DateHumanize(TimeUnit.Month, tense, months)); } if (days > 0) { return(formatter.DateHumanize(TimeUnit.Day, tense, days)); } if (hours > 0) { return(formatter.DateHumanize(TimeUnit.Hour, tense, hours)); } if (minutes > 0) { return(formatter.DateHumanize(TimeUnit.Minute, tense, minutes)); } if (seconds > 0) { return(formatter.DateHumanize(TimeUnit.Second, tense, seconds)); } return(formatter.DateHumanize(TimeUnit.Millisecond, tense, 0)); }