예제 #1
0
        public static bool IsInSchooljaar(this LocalDate datum, Schooljaar jaar)
        {
            if (jaar != default(Schooljaar))
            {
                return(jaar.Startdatum <= datum && datum <= jaar.Einddatum);
            }

            return(false);
        }
예제 #2
0
        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);
        }
예제 #3
0
 public static Schooljaar GetVolgendSchooljaar(this Schooljaar schooljaar)
 {
     return(Schooljaar.Create(schooljaar.Startjaar + 1));
 }
예제 #4
0
 public static Schooljaar GetVorigSchooljaar(this Schooljaar schooljaar)
 {
     return(Schooljaar.Create(schooljaar.Startjaar - 1));
 }
예제 #5
0
 public static DateInterval GetPeriod(this Schooljaar schooljaar)
 {
     return(new DateInterval(schooljaar.Startdatum, schooljaar.Einddatum));
 }