RandomDTOptions.withRange constructor
RandomDTOptions.withRange({
- bool allowPastDates = false,
- int 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),
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);
}