else if ( iUnit == Calendar.WEEK_OF_YEAR ) { final double dDays = computeDifference( cdt1, cdt2, Calendar.DATE ); return dDays / 7.0; }
	public static final double computeDifference( CDateTime cdt1,			CDateTime cdt2, int iUnit )	{		final long l1 = cdt1.getTimeInMillis( );		final long l2 = cdt2.getTimeInMillis( );		if ( iUnit == Calendar.MILLISECOND )		{			return ( l1 - l2 );		}		else if ( iUnit == Calendar.SECOND )		{			return ( l1 - l2 ) / MILLIS_IN_SECOND;		}		else if ( iUnit == Calendar.MINUTE )		{			return ( l1 - l2 ) / MILLIS_IN_MINUTE;		}		else if ( iUnit == Calendar.HOUR_OF_DAY )		{			return ( l1 - l2 ) / MILLIS_IN_HOUR;		}		else if ( iUnit == Calendar.DATE )		{			return ( l1 - l2 ) / MILLIS_IN_DAY;		}		else if ( iUnit == Calendar.MONTH )		{			final double dDays = computeDifference( cdt1, cdt2, Calendar.DATE );			return dDays / 30.4375;		}		else if ( iUnit == Calendar.YEAR )		{			final double dDays = computeDifference( cdt1, cdt2, Calendar.DATE );			return dDays / 365.25;		}		return 0;	}