function quarterOfYear( month ) {
	var mon;
	var q;
	if ( arguments.length ) {
		if ( isDateObject( month ) ) {
			mon = month.getMonth() + 1; // zero-based
		} else if ( isString( month ) || isInteger( month ) ) {
			mon = month;
		} else {
			throw new TypeError( format( 'invalid argument. Must provide either a string, integer, or Date object. Value: `%s`.', month ) );
		}
	} else {
		// Note: cannot cache as application may cross over into a new year:
		mon = ( new Date() ).getMonth() + 1; // zero-based
	}
	if ( isInteger( mon ) && (mon < 1 || mon > 12) ) {
		throw new RangeError( format( 'invalid argument. An integer month value must be on the interval: [1, 12]. Value: `%s`.', mon ) );
	}
	mon = lowercase( mon.toString() );
	q = QUARTERS[ mon ];
	if ( q === void 0 ) {
		throw new Error( format( 'invalid argument. Must provide a recognized month. Value: `%s`.', month ) );
	}
	return q;
}
Returns the quarter of the year.

@param {(integer|string|Date)} [month] - month (or `Date`)
@throws {TypeError} must provide 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]`
@returns {integer} quarter of the year

@example
var q = quarterOfYear( new Date() );
// returns <number>

@example
var q = quarterOfYear( 4 );
// returns 2

@example
var q = quarterOfYear( 'June' );
// returns 2