ExtendedChronology extends AssembledChronology { public static DateTime withPeriodEnd(DateTime dt) { dt = withPeriodStart(dt); dt = dt.plusMonths(2).dayOfMonth().withMaximumValue(); return dt; } private  ExtendedChronology(Chronology base); static ExtendedChronology getInstanceUTC(); static ExtendedChronology getInstance(); static ExtendedChronology getInstance(DateTimeZone zone); static int getQuarter(DateTime dt); static DateTime withPeriodStart(DateTime dt); static DateTime withPeriodEnd(DateTime dt); Chronology withUTC(); Chronology withZone(DateTimeZone zone); DurationField quarters(); String toString(); boolean equals(Object obj); int hashCode();  }
@Test public void testWithPeriodEnd() { DateTime testDate = new DateTime(2009, 5, 1, 0, 0, 0, 0); DateTime adjustedDate = ExtendedChronology.withPeriodEnd(testDate); assertEquals("2009-06-30T00:00:00.000", noZone(adjustedDate.toString())); testDate = new DateTime(2009, 3, 27, 0, 0, 0, 0); adjustedDate = ExtendedChronology.withPeriodEnd(testDate); assertEquals("2009-03-31T00:00:00.000", noZone(adjustedDate.toString())); }