public static bool IsInSchooljaar(this LocalDate datum, Schooljaar jaar) { if (jaar != default(Schooljaar)) { return(jaar.Startdatum <= datum && datum <= jaar.Einddatum); } return(false); }
public static Schooljaar GetSchooljaar(this LocalDate datum) { Contract.Requires(JaarOnderGrens >= 1); Contract.Requires(JaarBovenGrens <= int.MaxValue); Contract.Requires(JaarBovenGrens - JaarOnderGrens == 100); Schooljaar jaar = datum.Year; Schooljaar vorigJaar = datum.Year - 1; // Sanity check // Betreft eeuw correctie if (jaar < JaarOnderGrens || jaar > JaarBovenGrens) { Debug.WriteLine( "SANITY CHECK TRIGGERED: datum voor Schooljaar voor {0} of na {1}, gok dat datum er binnen hoort", JaarOnderGrens, JaarBovenGrens); int eeuwJaar = datum.Year % 100; Func <int, int, int> adjust = (eeuwjaar, eeuw) => eeuwjaar + ((eeuw / 100) * 100); if (eeuwJaar < JaarBovenGrens % 100) { eeuwJaar = adjust(eeuwJaar, JaarBovenGrens); } else { eeuwJaar = adjust(eeuwJaar, JaarOnderGrens); } return(GetSchooljaar(new LocalDate(eeuwJaar, datum.Month, datum.Day))); } return(datum.IsInSchooljaar(jaar) ? jaar : vorigJaar); }
public static Schooljaar GetVolgendSchooljaar(this Schooljaar schooljaar) { return(Schooljaar.Create(schooljaar.Startjaar + 1)); }
public static Schooljaar GetVorigSchooljaar(this Schooljaar schooljaar) { return(Schooljaar.Create(schooljaar.Startjaar - 1)); }
public static DateInterval GetPeriod(this Schooljaar schooljaar) { return(new DateInterval(schooljaar.Startdatum, schooljaar.Einddatum)); }