Пример #1
0
 public void Drei_Jahre_spaeter() {
     var zeitpunkt = new Zeitpunkt();
     zeitpunkt.Zeitraeume.Add(new Zeitraum{ Dauer = 3, Einheit = "j"});
     Assert.That(Erinnerungsauftraege.Zeitpunkt_ermitteln(
         new DateTime(2012, 2, 4), zeitpunkt),
         Is.EqualTo(new DateTime(2015, 2, 4)));
 }
Пример #2
0
        internal static DateTime Zeitpunkt_ermitteln(DateTime now, Zeitpunkt zeitpunkt) {
            if (zeitpunkt.Wochentag.HasValue) {
                do {
                    now = now.AddDays(1);
                } while (now.DayOfWeek != zeitpunkt.Wochentag);
            }

            if (zeitpunkt.Stunde > 0) {
                now = new DateTime(now.Year, now.Month, now.Day, zeitpunkt.Stunde, 0, 0);
            }
            if (zeitpunkt.Minute > 0) {
                now = new DateTime(now.Year, now.Month, now.Day, now.Hour, zeitpunkt.Minute, 0);
            }

            if(zeitpunkt.Monat > 0) {
                var later = new DateTime(now.Year, zeitpunkt.Monat, zeitpunkt.Tag, now.Hour, now.Minute, now.Second);
                if (later > now) {
                    now = later;
                }
                else {
                    now = later.AddYears(1);
                }
            }
            
            foreach (var zeitraum in zeitpunkt.Zeitraeume) {
                if (zeitraum.Einheit == "t") {
                    now = now.AddDays(zeitraum.Dauer);
                }
                else if (zeitraum.Einheit == "m") {
                    now = now.AddMonths(zeitraum.Dauer);
                }
                else if (zeitraum.Einheit == "j") {
                    now = now.AddYears(zeitraum.Dauer);
                }
            }
            return now;
        }
Пример #3
0
 public Parser(Zeitpunkt zeitpunkt) {
     this.zeitpunkt = zeitpunkt;
 }
Пример #4
0
 public void Setup() {
     var zeitpunkt = new Zeitpunkt();
     zeitpunkt.Zeitraeume.Add(new Zeitraum { Dauer = 1, Einheit = "t" });
     parser = new Parser(zeitpunkt);
     sut = new Erinnerungsauftraege(() => new DateTime(2012, 2, 4, 12, 42, 56), parser);
 }
Пример #5
0
 public void An_einem_gegebenen_Datum_das_dem_Tagesdatum_entspricht() {
     var zeitpunkt = new Zeitpunkt { Tag = 4, Monat = 2 };
     Assert.That(Erinnerungsauftraege.Zeitpunkt_ermitteln(
         new DateTime(2012, 2, 4), zeitpunkt),
         Is.EqualTo(new DateTime(2013, 2, 4)));
 }
Пример #6
0
 public void Am_nächsten_Sonntag_am_letzten_Sonntag_des_Jahres() {
     var zeitpunkt = new Zeitpunkt { Wochentag = DayOfWeek.Sunday };
     Assert.That(Erinnerungsauftraege.Zeitpunkt_ermitteln(
         new DateTime(2012, 12, 30), zeitpunkt),
         Is.EqualTo(new DateTime(2013, 1, 6)));
 }
Пример #7
0
 public void Am_nächsten_Montag() {
     var zeitpunkt = new Zeitpunkt { Wochentag = DayOfWeek.Monday };
     Assert.That(Erinnerungsauftraege.Zeitpunkt_ermitteln(
         new DateTime(2012, 8, 28), zeitpunkt), 
         Is.EqualTo(new DateTime(2012, 9, 3)));
 }
Пример #8
0
 public void Um_eine_gegebene_Stunde() {
     var zeitpunkt = new Zeitpunkt { Stunde = 11 };
     Assert.That(Erinnerungsauftraege.Zeitpunkt_ermitteln(
         new DateTime(2012, 8, 28, 12, 13, 14), zeitpunkt),
         Is.EqualTo(new DateTime(2012, 8, 28, 11, 0, 0)));
 }
Пример #9
0
 public void Um_eine_gegebene_Uhrzeit() {
     var zeitpunkt = new Zeitpunkt { Stunde = 11, Minute = 42 };
     Assert.That(Erinnerungsauftraege.Zeitpunkt_ermitteln(
         new DateTime(2012, 8, 28), zeitpunkt),
         Is.EqualTo(new DateTime(2012, 8, 28, 11, 42, 0)));
 }