Example: Bond Yield - Odd Short First Coupon

This example calculates the yield of an odd short first coupon.
Settlement 11/11/1992
Maturity 03/01/2005
Issue date 10/15/1992
First Coupon 03/01/1993
Rate 0.0785
Price 113.597717
Redemption Value 100.0
Payment Frequency Bond.SEMIANNUAL
Day Count Basis DayCountBasis.BasisActualActual

import com.imsl.finance.*;
import java.text.*;
import java.util.*;

public class OddShortFirstCoupYieldEx {

    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("11/11/1992");
        GregorianCalendar maturity = parse("03/01/2005");
        GregorianCalendar issueDate = parse("10/15/1992");
        GregorianCalendar firstCoupon = parse("03/01/1993");
        double yield = Bond.yield(settlement, maturity, issueDate,
                firstCoupon, 0.0785, 113.597717, 100.0, Bond.SEMIANNUAL,
                DayCountBasis.BasisActualActual);
        System.out.println("The yield is " + yield);
    }
}

Output

The yield is 0.06250000051314245
Link to Java source.