HDate constructor
Construct from basic fields
Implementation
factory HDate(int year, int month, int day) {
if (year < 1900) throw FormatException("Invalid year", year);
if (month < 1 || month > 12) {
throw FormatException("Invalid month", month);
}
if (day < 1 || day > 31) throw FormatException("Invalid day", day);
return HDate._(year, month, day);
}