static long getDaysFromBasis( int basis, long date0, long date1 )
	{
		if( (basis == 0) || (basis == 4) )
		{ // # months * 30 + extra days
			GregorianCalendar fromDate = (GregorianCalendar) DateConverter.getCalendarFromNumber( new Long( date0 ) );
			GregorianCalendar toDate = (GregorianCalendar) DateConverter.getCalendarFromNumber( new Long( date1 ) );
			int y0 = fromDate.get( Calendar.YEAR );
			int y1 = toDate.get( Calendar.YEAR );
			int d0 = fromDate.get( Calendar.DAY_OF_MONTH );
			int d1 = toDate.get( Calendar.DAY_OF_MONTH );
			int m0 = fromDate.get( Calendar.MONTH );
			int m1 = toDate.get( Calendar.MONTH );
			if( basis == 0 )
			{ // 30/360 US/NASD
				// TODO: PROBLEM: When date should be 2-28-02, get
				// 2-2-02!!!!!!!!!!!!!!!
				if( d0 == 31 )
				{
					d0 = 30;
				}
				if( (d1 == 31) && (d0 >= 30) )
				{
					d1 = 30;
				}
				//				if (m0==1 && d0 >=28) d0= 30; //
				// ??????????????????????????????????????????????????
				//				if (m1 == 1 && d1 >= 28)
				//					d1 = 30; // ?????????????????
			}
			else
			{ // 30/360 EURO -- CORRECT FOR ALL DATES EXCEPT MONTH OF
				// FEBRUARY (M0)!!
				//				if (m0==1 && d0>=28) d0= 30; // ?????????????????????
				//				if (m1==1 && d1>=28) d1= 30; // ?????????????????????
			}
			int result = ((360 * (y1 - y0)) + (30 * (m1 - m0)) + (d1 - d0));
			return result;
		}
		return date1 - date0; // actual (1, 2, 3)
	}