Sha256: 1a633c4e284dc430fd7f613c54224b4f7523fcd577a1933e0ef096d3162ad175
Contents?: true
Size: 1007 Bytes
Versions: 173
Compression:
Stored size: 1007 Bytes
Contents
'use strict'; var GetIntrinsic = require('get-intrinsic'); var $DateUTC = GetIntrinsic('%Date.UTC%'); var $isFinite = require('../helpers/isFinite'); var DateFromTime = require('./DateFromTime'); var Day = require('./Day'); var floor = require('./floor'); var modulo = require('./modulo'); var MonthFromTime = require('./MonthFromTime'); var ToIntegerOrInfinity = require('./ToIntegerOrInfinity'); var YearFromTime = require('./YearFromTime'); // https://262.ecma-international.org/5.1/#sec-15.9.1.12 module.exports = function MakeDay(year, month, date) { if (!$isFinite(year) || !$isFinite(month) || !$isFinite(date)) { return NaN; } var y = ToIntegerOrInfinity(year); var m = ToIntegerOrInfinity(month); var dt = ToIntegerOrInfinity(date); var ym = y + floor(m / 12); if (!$isFinite(ym)) { return NaN; } var mn = modulo(m, 12); var t = $DateUTC(ym, mn, 1); if (YearFromTime(t) !== ym || MonthFromTime(t) !== mn || DateFromTime(t) !== 1) { return NaN; } return Day(t) + dt - 1; };
Version data entries
173 entries across 50 versions & 2 rubygems