//! returns whether or not the given date is an ASX date public static bool isASXdate(Date date, bool mainCycle = true) { if (date.weekday() != (int)DayOfWeek.Friday + 1) { return(false); } int d = date.Day; if (d < 8 || d > 14) { return(false); } if (!mainCycle) { return(true); } switch ((Month)date.month()) { case Month.March: case Month.June: case Month.September: case Month.December: return(true); default: return(false); } }
public static Date previousWednesday(Date date) { int w = date.weekday(); if (w >= 4) // roll back w-4 days { return(date - new Period((w - 4), TimeUnit.Days)); } else // roll forward 4-w days and back one week { return(date + new Period((4 - w - 7), TimeUnit.Days)); } }