public override DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) {
year = CheckYearMonthRange(year, month, era);
int daysInMonth = InternalGetDaysInMonth(year, month);
if (day < 1 || day > daysInMonth) {
BCLDebug.Log("year = " + year + ", month = " + month + ", day = " + day);
throw new ArgumentOutOfRangeException(
"day",
String.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("ArgumentOutOfRange_Day"), daysInMonth, month));
}
int gy=0; int gm=0; int gd=0;
if (LunarToGregorian(year, month, day, ref gy, ref gm, ref gd)) {
return new DateTime(gy, gm, gd, hour, minute, second, millisecond);
} else {
throw new ArgumentOutOfRangeException(null, Environment.GetResourceString("ArgumentOutOfRange_BadYearMonthDay"));
}
}