double JS_MakeDay(int nYear, int nMonth, int nDate) { if (!_isfinite(nYear) || !_isfinite(nMonth) ||!_isfinite(nDate)) return GetNan(); double y = _toInteger(nYear); double m = _toInteger(nMonth); double dt = _toInteger(nDate); double ym = y + FXSYS_floor((double)m/12); double mn = _Mod(m ,12); double t = _TimeFromYearMonth((int)ym,(int)mn); if (_YearFromTime(t) != ym || _MonthFromTime(t) != mn ||_DateFromTime(t) != 1) return GetNan(); return _Day(t)+dt-1; }
int JS_GetSecFromTime(double dt) { return (int)_Mod(FXSYS_floor((double)(dt/1000)), 60); }
int JS_GetHourFromTime(double dt) { return (int)_Mod(FXSYS_floor((double)(dt/(60*60*1000))), 24); }
int JS_GetMinFromTime(double dt) { return (int)_Mod(FXSYS_floor((double)(dt/(60*1000))), 60); }
inline Symbol Symbol::operator%(const Symbol &rhs) const { return _Mod(*this, rhs); }