ThermostatMonitorLib.Temperatures.GetByTime C# (CSharp) Method

GetByTime() public method

public GetByTime ( System.DateTime time ) : Temperature
time System.DateTime
return Temperature
        public Temperature GetByTime(DateTime time)
        {
            Temperature result = null;
            foreach (ThermostatMonitorLib.Temperature t in this)
            {
                if (t.LogDate <= time) result = t;
            }
            return result;
        }

Usage Example

Example #1
0
        private static void LogOffCycle(int thermostatId, Cycle cycle, DateTime lastCycleEndDate, Temperatures allTemperatures, OutsideConditions allConditions)
        {
            Temperatures      temperatures        = allTemperatures.GetRange(lastCycleEndDate, cycle.StartDate);
            OutsideConditions conditions          = allConditions.GetRange(lastCycleEndDate, cycle.StartDate);
            Temperature       previousTemperature = allTemperatures.GetByTime(lastCycleEndDate);
            OutsideCondition  previousCondition   = allConditions.GetByTime(lastCycleEndDate);

            temperatures.Insert(0, previousTemperature);
            conditions.Insert(0, previousCondition);

            if (cycle.StartDate <= lastCycleEndDate)
            {
                return;
            }

            if (conditions.Count > 0 && temperatures.Count > 0)
            {
                DateTime endDate = cycle.StartDate;
                Snapshot s       = new Snapshot();
                s.StartTime          = lastCycleEndDate;
                s.Seconds            = Convert.ToInt32(new TimeSpan(cycle.StartDate.Ticks - lastCycleEndDate.Ticks).TotalSeconds);
                s.ThermostatId       = thermostatId;
                s.Mode               = "Off";
                s.InsideTempAverage  = Convert.ToInt32(temperatures.GetTempAverage(lastCycleEndDate, cycle.StartDate));
                s.InsideTempHigh     = Convert.ToInt32(temperatures.GetTempHigh());
                s.InsideTempLow      = Convert.ToInt32(temperatures.GetTempLow());
                s.OutsideTempAverage = Convert.ToInt32(conditions.GetTempAverage(lastCycleEndDate, cycle.StartDate));
                s.OutsideTempHigh    = Convert.ToInt32(conditions.GetTempHigh());
                s.OutsideTempLow     = Convert.ToInt32(conditions.GetTempLow());
                if (s.Seconds > 10 && s.Seconds < 86400) //if significant and less than a day
                {
                    Snapshot.SaveSnapshot(s);
                }
            }
        }
All Usage Examples Of ThermostatMonitorLib.Temperatures::GetByTime