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))); }
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; }
public Parser(Zeitpunkt zeitpunkt) { this.zeitpunkt = zeitpunkt; }
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); }
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))); }
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))); }
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))); }
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))); }
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))); }