LocalDate constructor

LocalDate(
  1. int year,
  2. int month,
  3. int day
)

Creates a valid Gregorian date or throws RangeError.

Implementation

factory LocalDate(int year, int month, int day) {
  if (year < -4713 ||
      year > 5874897 ||
      month < 1 ||
      month > 12 ||
      day < 1 ||
      day > _monthDays(year, month)) {
    throw RangeError('Invalid Gregorian date.');
  }
  final ordinal = _gregorianJulianDay(year, month, day);
  if (ordinal < minJulianDay || ordinal > maxJulianDay) {
    throw RangeError('Date exceeds the finite PostgreSQL DATE range.');
  }
  return LocalDate._(year, month, day, ordinal);
}