// Token: 0x060025FA RID: 9722 RVA: 0x000DBE84 File Offset: 0x000DA084 public static List <TimeRange> GetTimeRanges(UserContext userContext) { TimeRange.RangeId rangeId = TimeRange.RangeId.All; ExDateTime normalizedDate = TimeRange.GetNormalizedDate(DateTimeUtilities.GetLocalTime()); int num = (7 + (normalizedDate.DayOfWeek - userContext.UserOptions.WeekStartDay)) % 7; ExDateTime normalizedDate2 = TimeRange.GetNormalizedDate(normalizedDate.IncrementDays(1)); ExDateTime normalizedDate3 = TimeRange.GetNormalizedDate(normalizedDate.IncrementDays(-1)); ExDateTime normalizedDate4 = TimeRange.GetNormalizedDate(normalizedDate.IncrementDays(7 - num)); ExDateTime normalizedDate5 = TimeRange.GetNormalizedDate(normalizedDate4.IncrementDays(7)); ExDateTime normalizedDate6 = TimeRange.GetNormalizedDate(normalizedDate5.IncrementDays(7)); ExDateTime normalizedDate7 = TimeRange.GetNormalizedDate(normalizedDate6.IncrementDays(7)); ExDateTime normalizedDate8 = TimeRange.GetNormalizedDate(normalizedDate.IncrementDays(-1 * (7 + num))); ExDateTime normalizedDate9 = TimeRange.GetNormalizedDate(normalizedDate8.IncrementDays(-7)); ExDateTime normalizedDate10 = TimeRange.GetNormalizedDate(normalizedDate9.IncrementDays(-7)); if (normalizedDate7.Month != normalizedDate.Month) { rangeId &= ~TimeRange.RangeId.LaterThisMonth; } if (num != 6) { rangeId &= ~TimeRange.RangeId.Tomorrow; } if (num != 0) { rangeId &= ~TimeRange.RangeId.Yesterday; } if (normalizedDate10.Month != normalizedDate.Month || 1 >= normalizedDate10.Day) { rangeId &= ~TimeRange.RangeId.EarlierThisMonth; } List <TimeRange> list = new List <TimeRange>(18); ExDateTime exDateTime = new ExDateTime(userContext.TimeZone, normalizedDate.Year, normalizedDate.Month, 1); exDateTime = TimeRange.GetNormalizedDate(exDateTime.AddMonths(2)); ExDateTime exDateTime2 = ExDateTime.MaxValue; list.Insert(0, new TimeRange(TimeRange.RangeId.BeyondNextMonth, exDateTime, exDateTime2)); exDateTime2 = exDateTime; int num2 = ExDateTime.DaysInMonth(normalizedDate.Year, normalizedDate.Month) - normalizedDate.Day; if (21 < num2) { exDateTime = TimeRange.GetNormalizedDate(exDateTime2.AddMonths(-1)); } else { exDateTime = TimeRange.GetNormalizedDate(normalizedDate6.IncrementDays(7)); } list.Insert(0, new TimeRange(TimeRange.RangeId.NextMonth, exDateTime, exDateTime2)); if ((TimeRange.RangeId) 0 < (rangeId & TimeRange.RangeId.LaterThisMonth)) { exDateTime2 = exDateTime; exDateTime = TimeRange.GetNormalizedDate(normalizedDate6.IncrementDays(7)); list.Insert(0, new TimeRange(TimeRange.RangeId.LaterThisMonth, exDateTime, exDateTime2)); } exDateTime2 = exDateTime; exDateTime = normalizedDate6; list.Insert(0, new TimeRange(TimeRange.RangeId.ThreeWeeksAway, exDateTime, exDateTime2)); exDateTime2 = exDateTime; exDateTime = normalizedDate5; list.Insert(0, new TimeRange(TimeRange.RangeId.TwoWeeksAway, exDateTime, exDateTime2)); exDateTime2 = exDateTime; if (num == 6) { exDateTime = TimeRange.GetNormalizedDate(normalizedDate4.IncrementDays(1)); } else { exDateTime = normalizedDate4; } list.Insert(0, new TimeRange(TimeRange.RangeId.NextWeek, exDateTime, exDateTime2)); if ((TimeRange.RangeId) 0 < (rangeId & TimeRange.RangeId.Tomorrow)) { exDateTime2 = exDateTime; exDateTime = TimeRange.GetNormalizedDate(exDateTime.IncrementDays(-1)); list.Insert(0, new TimeRange(TimeRange.RangeId.Tomorrow, exDateTime, exDateTime2)); } int num3 = 7; while (0 < num3) { exDateTime2 = exDateTime; exDateTime = TimeRange.GetNormalizedDate(exDateTime.IncrementDays(-1)); TimeRange.RangeId rangeId2 = TimeRange.RangeId.None; if (normalizedDate2.Equals(exDateTime)) { rangeId2 = TimeRange.RangeId.Tomorrow; } else if (normalizedDate.Equals(exDateTime)) { rangeId2 = TimeRange.RangeId.Today; } else if (normalizedDate3.Equals(exDateTime)) { rangeId2 = TimeRange.RangeId.Yesterday; } else { switch (exDateTime.DayOfWeek) { case DayOfWeek.Sunday: rangeId2 = TimeRange.RangeId.Sunday; break; case DayOfWeek.Monday: rangeId2 = TimeRange.RangeId.Monday; break; case DayOfWeek.Tuesday: rangeId2 = TimeRange.RangeId.Tuesday; break; case DayOfWeek.Wednesday: rangeId2 = TimeRange.RangeId.Wednesday; break; case DayOfWeek.Thursday: rangeId2 = TimeRange.RangeId.Thursday; break; case DayOfWeek.Friday: rangeId2 = TimeRange.RangeId.Friday; break; case DayOfWeek.Saturday: rangeId2 = TimeRange.RangeId.Saturday; break; } } list.Insert(0, new TimeRange(rangeId2, exDateTime, exDateTime2)); num3--; } if ((TimeRange.RangeId) 0 < (rangeId & TimeRange.RangeId.Yesterday)) { exDateTime2 = exDateTime; exDateTime = TimeRange.GetNormalizedDate(exDateTime.IncrementDays(-1)); list.Insert(0, new TimeRange(TimeRange.RangeId.Yesterday, exDateTime, exDateTime2)); } exDateTime2 = exDateTime; exDateTime = normalizedDate8; list.Insert(0, new TimeRange(TimeRange.RangeId.LastWeek, exDateTime, exDateTime2)); exDateTime2 = exDateTime; exDateTime = normalizedDate9; list.Insert(0, new TimeRange(TimeRange.RangeId.TwoWeeksAgo, exDateTime, exDateTime2)); exDateTime2 = exDateTime; exDateTime = normalizedDate10; list.Insert(0, new TimeRange(TimeRange.RangeId.ThreeWeeksAgo, exDateTime, exDateTime2)); if ((TimeRange.RangeId) 0 < (rangeId & TimeRange.RangeId.EarlierThisMonth)) { exDateTime2 = exDateTime; exDateTime = TimeRange.GetNormalizedDate(exDateTime.IncrementDays(-1 * (exDateTime.Day - 1))); list.Insert(0, new TimeRange(TimeRange.RangeId.EarlierThisMonth, exDateTime, exDateTime2)); } exDateTime2 = exDateTime; if (exDateTime2.Day == 1) { exDateTime = TimeRange.GetNormalizedDate(exDateTime.IncrementDays(-1)); } exDateTime = TimeRange.GetNormalizedDate(exDateTime.IncrementDays(-1 * (exDateTime.Day - 1))); list.Insert(0, new TimeRange(TimeRange.RangeId.LastMonth, exDateTime, exDateTime2)); exDateTime2 = exDateTime; exDateTime = ExDateTime.MinValue.AddTicks(1L); list.Insert(0, new TimeRange(TimeRange.RangeId.Older, exDateTime, exDateTime2)); list.Insert(0, new TimeRange(TimeRange.RangeId.None, ExDateTime.MinValue, ExDateTime.MinValue)); return(list); }
// Token: 0x060025F9 RID: 9721 RVA: 0x000DBE65 File Offset: 0x000DA065 private TimeRange(TimeRange.RangeId range, ExDateTime start, ExDateTime end) { this.range = range; this.start = start; this.end = end; }