package com.imsl.test.example.finance; import com.imsl.finance.*; import java.text.*; import java.util.*; /** *

* Computes the yield of a bond with an odd long last coupon and multiple * periods.

* * This example calculates the yield of an odd long last coupon with multiple * coupon periods to redemption. *
* * * * * * * * * *
Settlement02/25/1993
Maturity09/15/2004
Last Coupon12/15/2003
Rate0.06875
Price85.334452
Redemption Value100.0
Payment FrequencyBond.SEMIANNUAL
Day Count BasisDayCountBasis.Basis30e360
*
* * @see Code * @see Output * */ public class BondYieldEx3 { static final DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.SHORT, Locale.US); static private GregorianCalendar parse(String s) throws ParseException { GregorianCalendar cal = new GregorianCalendar(); cal.setTime(dateFormat.parse(s)); return cal; } public static void main(String args[]) throws ParseException { GregorianCalendar settlement = parse("02/25/1993"); GregorianCalendar maturity = parse("09/15/2004"); GregorianCalendar lastCoupon = parse("12/15/2003"); double yield = Bond.yield(settlement, maturity, lastCoupon, 0.06875, 85.334452, 100.0, Bond.SEMIANNUAL, DayCountBasis.Basis30e360); System.out.println("The yield is " + yield); } }