function dayOfQuarter( month, day, year ) {
	var date;
	var yr;
	var q;
	var d;
	if ( arguments.length === 0 ) {
		// Note: cannot cache as application may cross over into a new year:
		date = new Date();
		q = quarterOfYear( date );
		d = dayOfYear( date );
		yr = date.getFullYear();
	} else if ( arguments.length === 1 ) {
		if ( isDateObject( month ) ) {
			date = month;
			q = quarterOfYear( date );
			d = dayOfYear( date );
			yr = date.getFullYear();
		} else {
			throw new TypeError( format( 'invalid argument. If only providing a single argument, must provide a Date object. Value: `%s`.', month ) );
		}
	} else {
		if ( !isString( month ) && !isInteger( month ) ) {
			throw new TypeError( format( 'invalid argument. First argument must be either a string or integer. Value: `%s`.', month ) );
		}
		if ( !isInteger( day ) ) {
			throw new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', day ) );
		}
		if ( !isInteger( year ) ) {
			throw new TypeError( format( 'invalid argument. Third argument must be an integer. Value: `%s`.', year ) );
		}
		q = quarterOfYear( month );
		d = dayOfYear( month, day, year );
		yr = year;
	}
	if ( isLeapYear( yr ) ) {
		return d - LEAP_YEAR[ q-1 ];
	}
	return d - NON_LEAP_YEAR[ q-1 ];
}
Returns the day of the quarter.

@param {(string|integer|Date)} [month] - month (or `Date`)
@param {integer} [day] - day
@param {integer} [year] - year
@throws {TypeError} first argument must be either a string, integer, or `Date` object
@throws {Error} must provide a recognized month
@throws {RangeError} an integer month argument must be on the interval `[1,12]`
@throws {TypeError} second argument must be an integer
@throws {RangeError} second argument must be greater than `0` and less than or equal to the maximum number of days in a month
@throws {TypeError} third argument must be an integer
@returns {integer} day of the quarter

@example
var day = dayOfQuarter();
// returns <number>

day = dayOfQuarter( new Date() );
// returns <number>

day = dayOfQuarter( 12, 31, 2017 );
// returns 92