protected static Ptg calcTBillYield( Ptg[] operands )
	{
		if( operands.length < 3 )
		{
			PtgErr perr = new PtgErr( PtgErr.ERROR_NULL );
			return perr;
		}
			debugOperands( operands, "calcTBILLYIELD" );
		try
		{
			GregorianCalendar sDate = (GregorianCalendar) DateConverter.getCalendarFromNumber( operands[0].getValue() );
			GregorianCalendar mDate = (GregorianCalendar) DateConverter.getCalendarFromNumber( operands[1].getValue() );
			double price = operands[2].getDoubleVal();

			long settlementDate = (new Double( DateConverter.getXLSDateVal( sDate ) )).longValue();
			long maturityDate = (new Double( DateConverter.getXLSDateVal( mDate ) )).longValue();
			if( settlementDate >= maturityDate )
			{
				return new PtgErr( PtgErr.ERROR_NUM );
			}
			if( (maturityDate - settlementDate) > 365 )
			{
				return new PtgErr( PtgErr.ERROR_NUM );
			}
			if( price <= 0 )
			{
				return new PtgErr( PtgErr.ERROR_NUM );
			}

			double DSM = maturityDate - settlementDate;
			double result = ((100 - price) / price) * (360 / DSM);
				log.debug( "Result from calcTBILLYIELD= " + result );
			PtgNumber pnum = new PtgNumber( result );
			return pnum;
		}
		catch( Exception e )
		{
		}
		return new PtgErr( PtgErr.ERROR_VALUE );
	}