public void Ago() { DateTime?utcTime = new DateTime(2000, 1, 2, 5, 0, 0, DateTimeKind.Utc); DeploymentInterval deploymentInterval = utcTime.IntervalAgo(new TestClock()); Assert.Equal(DeploymentInterval.ThisWeek, deploymentInterval); }
public static DeploymentInterval IntervalAgo(this DateTime?dateTimeUtc, [NotNull] ICustomClock customClock) { if (customClock == null) { throw new ArgumentNullException(nameof(customClock)); } if (!dateTimeUtc.HasValue) { return(DeploymentInterval.Invalid); } TimeSpan diff = customClock.LocalNow() - customClock.ToLocalTime(dateTimeUtc.Value); if (diff.TotalSeconds < 0) { return(DeploymentInterval.Invalid); } return(DeploymentInterval.Parse(diff)); }