RandomDTOptions.withRange constructor

RandomDTOptions.withRange({
  1. bool allowPastDates = false,
  2. int futureYearLimit = 5,
  3. TimeRange yearRange = const TimeRange(),
  4. TimeRange monthRange = const TimeRange(start: 1, end: 12),
  5. TimeRange dayRange = const TimeRange(start: 1, end: 31),
  6. TimeRange hourRange = const TimeRange(start: 0, end: 23),
  7. TimeRange minuteRange = const TimeRange(start: 0, end: 59),
  8. TimeRange secondRange = const TimeRange(start: 0, end: 59),
  9. TimeRange millisecondRange = const TimeRange(start: 0, end: 999),
  10. TimeRange microsecondRange = const TimeRange(start: 0, end: 999),
})

Implementation

RandomDTOptions.withRange({
  this.allowPastDates = false,
  this.futureYearLimit = 5,
  TimeRange yearRange = const TimeRange(),
  TimeRange monthRange = const TimeRange(start: 1, end: 12),
  TimeRange dayRange = const TimeRange(start: 1, end: 31),
  TimeRange hourRange = const TimeRange(start: 0, end: 23),
  TimeRange minuteRange = const TimeRange(start: 0, end: 59),
  TimeRange secondRange = const TimeRange(start: 0, end: 59),
  TimeRange millisecondRange = const TimeRange(start: 0, end: 999),
  TimeRange microsecondRange = const TimeRange(start: 0, end: 999),
}) : _now = DateTime.now() {
  final int startYear = allowPastDates ? yearRange.start ?? 1970 : _now.year;
  final int endYear = yearRange.end ?? _now.year + futureYearLimit;
  if (!allowPastDates && endYear < _now.year) {
    throw ArgumentError(
      // ignore: lines_longer_than_80_chars
      'End year [$endYear] cannot be less than current year if allowPastDates is false',
    );
  }
  _years = List<int>.generate(
    endYear - startYear + 1,
    (int i) => i + (startYear),
  );
  _months = _generateRangeList(monthRange.start!, monthRange.end!, 1, 12);

  _days = _generateRangeList(dayRange.start!, dayRange.end!, 1, 31);

  _hours = _generateRangeList(hourRange.start!, hourRange.end!, 0, 23);

  _minutes = _generateRangeList(minuteRange.start!, minuteRange.end!, 0, 59);

  _seconds = _generateRangeList(secondRange.start!, secondRange.end!, 0, 59);

  _milliseconds = _generateRangeList(
      millisecondRange.start!, millisecondRange.end!, 0, 999);

  _microseconds = _generateRangeList(
      microsecondRange.start!, microsecondRange.end!, 0, 999);
}