subAndAss method

MathTime subAndAss(
  1. dynamic r
)

Implementation

MathTime subAndAss( dynamic r ){
	if( r is MathTime ){
		if( _minus != r._minus ){
			// this += -r
			addAndAss( r.minus() );
		} else {
			_update();
			MathTime rr = dup( r );
			rr._update();
			_hour  -= rr._hour;
			_min   -= rr._min;
			_sec   -= rr._sec;
			_frame -= rr._frame;
			reduce();
		}
	} else {
		double rr = ClipMath.toDouble(r);
		if( _minus != (rr < 0.0) ){
			// this += -rr
			addAndAss( -rr );
		} else {
			_update();
			MathTime rrr = floatToTime( rr );
			_hour  -= rrr._hour;
			_min   -= rrr._min;
			_sec   -= rrr._sec;
			_frame -= rrr._frame;
			reduce();
		}
	}
	return this;
}