public void Add_MethodEquivalents() { const int minutes = 23; const int hours = 3; const int milliseconds = 40000; const long seconds = 321; const long nanoseconds = 12345; const long ticks = 5432112345; ZonedDateTime before = SampleZone.AtStrictly(new LocalDateTime(2011, 6, 12, 15, 0)); Assert.AreEqual(before + Duration.OneDay, ZonedDateTime.Add(before, Duration.OneDay)); Assert.AreEqual(before + Duration.OneDay, before.Plus(Duration.OneDay)); Assert.AreEqual(before + Duration.FromHours(hours), before.PlusHours(hours)); Assert.AreEqual(before + Duration.FromHours(-hours), before.PlusHours(-hours)); Assert.AreEqual(before + Duration.FromMinutes(minutes), before.PlusMinutes(minutes)); Assert.AreEqual(before + Duration.FromMinutes(-minutes), before.PlusMinutes(-minutes)); Assert.AreEqual(before + Duration.FromSeconds(seconds), before.PlusSeconds(seconds)); Assert.AreEqual(before + Duration.FromSeconds(-seconds), before.PlusSeconds(-seconds)); Assert.AreEqual(before + Duration.FromMilliseconds(milliseconds), before.PlusMilliseconds(milliseconds)); Assert.AreEqual(before + Duration.FromMilliseconds(-milliseconds), before.PlusMilliseconds(-milliseconds)); Assert.AreEqual(before + Duration.FromTicks(ticks), before.PlusTicks(ticks)); Assert.AreEqual(before + Duration.FromTicks(-ticks), before.PlusTicks(-ticks)); Assert.AreEqual(before + Duration.FromNanoseconds(nanoseconds), before.PlusNanoseconds(nanoseconds)); Assert.AreEqual(before + Duration.FromNanoseconds(-nanoseconds), before.PlusNanoseconds(-nanoseconds)); }
public void Add_MethodEquivalents() { ZonedDateTime before = SampleZone.AtStrictly(new LocalDateTime(2011, 6, 12, 15, 0)); Assert.AreEqual(before + Duration.OneStandardDay, ZonedDateTime.Add(before, Duration.OneStandardDay)); Assert.AreEqual(before + Duration.OneStandardDay, before.Plus(Duration.OneStandardDay)); }
public void Add_AroundTimeZoneTransition() { // Before the transition at 3pm... ZonedDateTime before = SampleZone.AtStrictly(new LocalDateTime(2011, 6, 12, 15, 0)); // 24 hours elapsed, and it's 4pm ZonedDateTime afterExpected = SampleZone.AtStrictly(new LocalDateTime(2011, 6, 13, 16, 0)); ZonedDateTime afterAdd = ZonedDateTime.Add(before, Duration.OneDay); ZonedDateTime afterOperator = before + Duration.OneDay; Assert.AreEqual(afterExpected, afterAdd); Assert.AreEqual(afterExpected, afterOperator); }
public void AddDuration() { // Europe/Dublin transitions from UTC+1 to UTC+0 at 2am (local) on 2017-10-29 var dt = new LocalDateTime(2017, 10, 29, 1, 45, 0); DateTimeZone dublin = DateTimeZoneProviders.Tzdb["Europe/Dublin"]; ZonedDateTime beforeTransition = new ZonedDateTime(dt, dublin, Offset.FromHours(1)); var result = Snippet.For(ZonedDateTime.Add(beforeTransition, Duration.FromHours(1))); Assert.AreEqual(new LocalDate(2017, 10, 29), result.Date); // Adding an hour of elapsed time takes us across the DST transition, so we have // the same local time (shown on a clock) but a different offset. Assert.AreEqual(new ZonedDateTime(dt, dublin, Offset.FromHours(0)), result); // The + operator and Plus instance method are equivalent to the Add static method. var result2 = Snippet.For(beforeTransition + Duration.FromHours(1)); var result3 = Snippet.For(beforeTransition.Plus(Duration.FromHours(1))); Assert.AreEqual(result, result2); Assert.AreEqual(result, result3); }