Lunar.fromYmdHms constructor
Lunar.fromYmdHms(
- int lunarYear,
- int lunarMonth,
- int lunarDay,
- int hour,
- int minute,
- int second,
)
Implementation
Lunar.fromYmdHms(int lunarYear, int lunarMonth, int lunarDay, int hour, int minute, int second) {
LunarYear y = LunarYear.fromYear(lunarYear);
LunarMonth? m = y.getMonth(lunarMonth);
if (null == m) {
throw 'wrong lunar year $lunarYear month $lunarMonth';
}
if (lunarDay < 1) {
throw 'lunar day must bigger than 0';
}
int days = m.getDayCount();
if (lunarDay > days) {
throw 'only $days days in lunar year $lunarYear month $lunarMonth';
}
_year = lunarYear;
_month = lunarMonth;
_day = lunarDay;
_hour = hour;
_minute = minute;
_second = second;
Solar noon = Solar.fromJulianDay(m.getFirstJulianDay() + lunarDay - 1);
_solar = Solar.fromYmdHms(
noon.getYear(), noon.getMonth(), noon.getDay(), hour, minute, second);
if (noon.getYear() != lunarYear) {
y = LunarYear.fromYear(noon.getYear());
}
_compute(y);
}