protected static Ptg calcTBillPrice( Ptg[] operands )
	{
		if( operands.length < 3 )
		{
			PtgErr perr = new PtgErr( PtgErr.ERROR_NULL );
			return perr;
		}
			debugOperands( operands, "calcTBILLPRICE" );
		try
		{
			GregorianCalendar sDate = (GregorianCalendar) DateConverter.getCalendarFromNumber( operands[0].getValue() );
			GregorianCalendar mDate = (GregorianCalendar) DateConverter.getCalendarFromNumber( operands[1].getValue() );
			double rate = 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( rate <= 0 )
			{
				return new PtgErr( PtgErr.ERROR_NUM );
			}

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