BroadcastMonthRange.monthsAgo constructor

BroadcastMonthRange.monthsAgo(
  1. Clock clock,
  2. int ago, [
  3. RangeTitle titleFunction = _defaultTitle
])

Implementation

factory BroadcastMonthRange.monthsAgo(Clock clock, int ago,
    [RangeTitle titleFunction = _defaultTitle]) {
  var today = Date.today(clock);
  var thisCalendarMonthTheFirst = Date(today.year, today.month, 1);
  var nextCalendarMonthTheFirst = thisCalendarMonthTheFirst.add(months: 1);

  // Today belongs to the broadcast month containing
  // [thisCalendarMonthTheFirst] iff this week does not contain
  // [nextCalendarMonthTheFirst].
  var theFirst = nextCalendarMonthTheFirst.isAfter(_weekEnd(today))
      ? thisCalendarMonthTheFirst
      : nextCalendarMonthTheFirst;
  return BroadcastMonthRange._(
      theFirst.add(months: -ago), ago, titleFunction);
}