age<E> static method
Validates that the person's age (based on birth date) is within range.
DateRules.age(18, 120, error: 'Must be 18-120 years old')
Implementation
static Rule<DateTime, E> age<E>(int minAge, int maxAge, {required E error}) =>
PredicateRule(
predicate: (value) {
final now = DateTime.now();
final age = now.year - value.year;
final adjustedAge =
(now.month < value.month ||
(now.month == value.month && now.day < value.day))
? age - 1
: age;
return adjustedAge >= minAge && adjustedAge <= maxAge;
},
error: error,
);