public void DateSpanConstructorTest() { Time time = "10:30 PM"; var ds1 = new DateSpan(time); var ds2 = new DateSpan(new Time(22, 30)); Assert.AreEqual(ds2, ds1); ds1.ToDateTime(); ds2.ToDateTime(); time = "2:15am"; var ds3 = new DateSpan(time); var ds4 = new DateSpan(new Time(2, 15)); Assert.AreEqual(ds3, ds4); ds3.ToDateTime(); ds4.ToDateTime(); Assert.IsTrue(ds1.After(ds3)); Assert.IsFalse(ds1.Before(ds3)); Assert.IsTrue(ds3.Before(ds1)); Assert.IsFalse(ds3.After(ds1)); }
public void BeforeAfterTest() { var ds1 = new DateSpan(2017, 1, 1, 12, 30, 0, 0); var ds2 = new DateSpan(2017, 1, 2, 12, 30, 0, 0); Assert.True(ds1.Before(ds2)); Assert.True(ds2.After(ds1)); Assert.False(ds1.After(ds2)); }
public float GetDimmingLevel() { if (currentState == -1) { autoDimmingLevel = 0; } else { DateSpan start, end, now = DateSpan.Now; if (lightingStates[currentState].startTime.Before(lightingStates[currentState].endTime)) { start = new DateSpan(lightingStates[currentState].startTime); end = new DateSpan(lightingStates[currentState].endTime); } else { var otherDay = DateSpan.Now; // its after midnight if (now.Before(lightingStates[currentState].endTime)) { otherDay.AddDays(-1); start = new DateSpan(otherDay, lightingStates[currentState].startTime); end = new DateSpan(lightingStates[currentState].endTime); } else { otherDay.AddDays(1); start = new DateSpan(lightingStates[currentState].startTime); end = new DateSpan(otherDay, lightingStates[currentState].endTime); } } if (lightingStates[currentState].type == LightingStateType.LinearRamp) { autoDimmingLevel = Utils.CalcLinearRamp( start, end, now, lightingStates[currentState].startingDimmingLevel, lightingStates[currentState].endingDimmingLevel); } else if (lightingStates[currentState].type == LightingStateType.HalfParabolaRamp) { autoDimmingLevel = Utils.CalcHalfParabola( start, end, now, lightingStates[currentState].startingDimmingLevel, lightingStates[currentState].endingDimmingLevel); } else if (lightingStates[currentState].type == LightingStateType.On) { autoDimmingLevel = lightingStates[currentState].startingDimmingLevel; } } autoDimmingLevel = autoDimmingLevel.Constrain(0, 100); if (plugState) { if (dimmingMode == Mode.Auto) { requestedDimmingLevel = autoDimmingLevel; } currentDimmingLevel = rateOfChangeLimiter.RateOfChange(requestedDimmingLevel); } return(currentDimmingLevel); }