Пример #1
0
        public static ICollection <Tijdlijn> SplitsOpJaarGrens(this Tijdlijn tijdlijn)
        {
            var retval = new List <Tijdlijn>();

            if (tijdlijn.Periode.Van.Year != tijdlijn.Periode.TotEnMet.Year)
            {
                var aantalJaren = tijdlijn.Periode.TotEnMet.Year - tijdlijn.Periode.Van.Year;
                //voor een verschil van 1 jaar moeten er twee perioden komen
                for (var i = 0; i < aantalJaren + 1; i++)
                {
                    var vanDatum = i == 0
                        ? tijdlijn.Periode.Van
                        : new DateTime(tijdlijn.Periode.Van.Year + i, 1, 1);
                    var totEnMetDatum = i == aantalJaren
                        ? tijdlijn.Periode.TotEnMet
                        : new DateTime(tijdlijn.Periode.Van.Year + i, 12, 31);
                    retval.Add(new Tijdlijn
                    {
                        Waarden = tijdlijn.Waarden,
                        Periode = new Periode(vanDatum, totEnMetDatum)
                    });
                }
            }
            else
            {
                retval.Add(tijdlijn);
            }
            return(retval);
        }
Пример #2
0
        public static TijdlijnPositie BepaaldTijdlijnPositie(this Tijdlijn tijdlijn, int jaar)
        {
            if (tijdlijn.Periode.Van.Year == jaar && tijdlijn.Periode.TotEnMet.Year == jaar)
            {
                return(TijdlijnPositie.VolledigInJaar);
            }

            if (tijdlijn.Periode.Van.Year < jaar && tijdlijn.Periode.TotEnMet.Year == jaar)
            {
                return(TijdlijnPositie.DeelsInVorigJaar);
            }

            if (tijdlijn.Periode.Van.Year == jaar && tijdlijn.Periode.TotEnMet.Year > jaar)
            {
                return(TijdlijnPositie.DeelsInVolgendJaar);
            }

            return(TijdlijnPositie.DeelsInVorigEnVolgendJaar);
        }