private void TimeCalculate() { if (TimeNeedsToRecalculate) { if (TimeIntervals == null) { TimeIntervals = new List <double>(); } TimeIntervals.Clear(); //DateTime time = DateTime.Now; for (double i = StartTime; i <= EndTime + TimeStep / 2.0; i += TimeStep) { double interval = Math.Round(i, 6); TimeIntervals.Add(interval); } //_tTime = (DateTime.Now - time).TotalMilliseconds; TimeNeedsToRecalculate = false; FrequencyNeedsToRecalculate = true; } }
//Получение времени источника public TimeInterval GetTime() { TimeIntervals.Clear(); TimeInterval t = null; try { if (IsOriginal) { t = new TimeInterval(Different.MinDate.AddYears(1), DateTime.Now); } else { using (var sys = new SysTabl(DatabaseFile, false)) t = new TimeInterval(DateTime.Parse(sys.Value("BeginInterval")), DateTime.Parse(sys.Value("EndInterval"))); } TimeIntervals.Add(t); } catch (Exception ex) { AddError("Ошибка определения диапазона источника", ex); IsConnected = false; } return(t); }
public override void performEnterAction(Collider platform, Collider other) { switch (currentTimeInterval) { case TimeIntervals.Day: currentTimeInterval = TimeIntervals.Week; day.SetActive(false); week.SetActive(true); break; case TimeIntervals.Month: month.SetActive(false); year.SetActive(true); currentTimeInterval = TimeIntervals.Year; break; case TimeIntervals.Week: week.SetActive(false); month.SetActive(true); currentTimeInterval = TimeIntervals.Month; break; case TimeIntervals.Year: year.SetActive(false); fiveYear.SetActive(true); currentTimeInterval = TimeIntervals.FiveYears; break; case TimeIntervals.FiveYears: fiveYear.SetActive(false); day.SetActive(true); currentTimeInterval = TimeIntervals.Day; break; } }
public void TestMergeIntervals2() { var intervals1 = TimeIntervals.FromIntervals(new[] { new KeyValuePair <float, float>(24.81052f, 24.98775f), new KeyValuePair <float, float>(34.53197f, 34.53515f), new KeyValuePair <float, float>(34.83207f, 35.22802f), new KeyValuePair <float, float>(38.6576f, 38.69949f), new KeyValuePair <float, float>(39.49813f, 39.92231f), new KeyValuePair <float, float>(39.96412f, 40.01009f), new KeyValuePair <float, float>(40.05416f, 40.16293f), new KeyValuePair <float, float>(49.02427f, 49.05523f), new KeyValuePair <float, float>(54.82053f, 54.94222f), new KeyValuePair <float, float>(54.9833f, 55.0249f), new KeyValuePair <float, float>(57.92376f, 57.92695f), new KeyValuePair <float, float>(58.0083f, 58.04743f), new KeyValuePair <float, float>(63.76418f, 63.86788f), new KeyValuePair <float, float>(65.5108f, 65.52985f), new KeyValuePair <float, float>(65.57608f, 65.65861f), new KeyValuePair <float, float>(66.70279f, 67.11095f), new KeyValuePair <float, float>(70.06538f, 70.125f), new KeyValuePair <float, float>(77.27367f, 77.53282f), new KeyValuePair <float, float>(83.9983f, 84.04679f), }); var intervals2 = TimeIntervals.FromIntervals(new[] { new KeyValuePair <float, float>(0.002652853f, 97.00591f) }); var result = intervals1.Intersect(intervals2); Assert.AreEqual(19, result.Count); }
public virtual void RemoveAllIntervals() { foreach (var interval in TimeIntervals.Reverse()) { RemoveTimeInterval(interval); } }
private bool TryGetTime() { if (!IsConnected && !Connect()) { return(false); } try { Logger.AddEvent("Определение диапазона источника"); var cmd = new OleDbCommand("Exec RT_ARCHDATE", Connection); using (OleDbDataReader rec = cmd.ExecuteReader()) { if (rec == null) { return(false); } rec.Read(); BeginTime = (DateTime)rec[0]; EndTime = (DateTime)rec[1]; TimeIntervals.Clear(); TimeIntervals.Add(new TimeInterval(BeginTime, EndTime)); Logger.AddEvent("Диапазон источника определен", BeginTime + " - " + EndTime); return(BeginTime.ToString() != "0:00:00"); } } catch (Exception ex) { Logger.AddError("Ошибка определения диапазона архива ПТК Космотроника", ex); IsConnected = false; return(false); } }
//Получение времени источника public TimeInterval GetTime() { TimeIntervals.Clear(); var t = new TimeInterval(Different.MinDate.AddYears(1), DateTime.Now); TimeIntervals.Add(t); return(t); }
//Получение диапазона архива по блокам истории public TimeInterval GetTime() { TimeIntervals.Clear(); var ti = new TimeInterval(Different.MinDate, Different.MaxDate); TimeIntervals.Add(ti); return(ti); }
public void TestMergeIntervals() { var intervals1 = TimeIntervals.FromIntervals(new [] { new KeyValuePair <float, float>(1, 3), new KeyValuePair <float, float>(5, 7) }); var intervals2 = TimeIntervals.FromIntervals(new[] { new KeyValuePair <float, float>(2, 6) }); var intersection = intervals1.Intersect(intervals2); Assert.AreEqual(2, intersection.Count); Assert.AreEqual(new KeyValuePair <float, float>(2, 3), intersection.Intervals.First()); Assert.AreEqual(new KeyValuePair <float, float>(5, 6), intersection.Intervals.Last()); }
public void TestFromScanTimes() { var intervals = TimeIntervals.FromScanTimes(new float[] { 1, 2, 3, 4, 8, 9, 11, 15, 16 }, 1); Assert.AreEqual(3, intervals.Count); Assert.AreEqual(new KeyValuePair <float, float>(1, 4), intervals.Intervals.First()); Assert.AreEqual(new KeyValuePair <float, float>(8, 9), intervals.Intervals.Skip(1).First()); Assert.AreEqual(new KeyValuePair <float, float>(15, 16), intervals.Intervals.Last()); intervals = TimeIntervals.FromScanTimes(new float[] { 2, 4, 6, 8 }, 1); Assert.AreEqual(0, intervals.Count); }
public double GetViewers(int unitsFromStart) { int unitsPassed = 0; foreach (var span in TimeIntervals) { unitsPassed += span.SpanUnits; if (unitsFromStart < unitsPassed) { return(span.Viewers); } } return(TimeIntervals.Last().Viewers); }
//Получение диапазона клона public TimeInterval GetTime() { if (CloneFile.IsEmpty()) { return(new TimeInterval(Different.MinDate, Different.MaxDate)); } using (var sys = new SysTabl(CloneFile)) { TimeIntervals.Clear(); var t = new TimeInterval(sys.Value("BeginInterval").ToDateTime(), IsHandInput ? DateTime.Now : sys.Value("EndInterval").ToDateTime()); TimeIntervals.Add(t); return(t); } }
//Получение диапазона клона public TimeInterval GetTime() { try { using (var rec = new DataSetSql(SqlProps, "SysTabl")) { rec.FindFirst("ParamName", "BeginInterval"); TimeIntervals.Clear(); var t = new TimeInterval(rec.GetString("ParamValue").ToDateTime(), DateTime.Now); TimeIntervals.Add(t); return(t); } } catch { return(new TimeInterval(Different.MinDate, Different.MaxDate)); } }
//Получение диапазона архива по блокам истории public TimeInterval GetTime() { TimeIntervals.Clear(); DateTime mind = Different.MaxDate, maxd = Different.MinDate; DateTime mint = Different.MaxDate, maxt = Different.MinDate; try { using (var rec = new ReaderAdo(SqlProps, "SELECT FromDate, ToDate FROM v_HistoryBlock ORDER BY FromDate, ToDate DESC")) while (rec.Read()) { var fromd = rec.GetTime("FromDate"); var tod = rec.GetTime("ToDate"); if (fromd < mind) { mind = fromd; } if (fromd.Subtract(maxt).TotalMinutes > 1) { if (maxt != Different.MinDate) { TimeIntervals.Add(new TimeInterval(mint, maxt)); } mint = fromd; } if (maxd < tod) { maxd = tod; } if (maxt < tod) { maxt = tod; } } } catch (Exception ex) { Logger.AddError("Ошибка при получении диапазона источника", ex); } if (mind == Different.MaxDate && maxd == Different.MinDate) { return(new TimeInterval(Different.MinDate, Different.MaxDate)); } Logger.AddEvent("Диапазон источника определен", mind + " - " + maxd); return(new TimeInterval(mind, maxd)); }
private void TimeCalculate() { if (TimeNeedsToRecalculate) { if (TimeIntervals == null) { TimeIntervals = new List <double>(); } TimeIntervals.Clear(); for (double i = StartTime; i <= EndTime + TimeStep / 2.0; i += TimeStep) { double interval = Math.Round(i, 6); TimeIntervals.Add(interval); } TimeNeedsToRecalculate = false; } }
//Получение диапазона архива public TimeInterval GetTime() { var pdic = Archive.ReadProjects(ReportType.Calc); var t = new TimeInterval(Different.MaxDate, Different.MinDate); foreach (var pr in pdic.Values) { var dic = Archive.ReadRanges(pr.Code, ReportType.Calc); AddIntervalTime(dic, IntervalType.Day, t); AddIntervalTime(dic, IntervalType.Hour, t); AddIntervalTime(dic, IntervalType.Base, t); AddIntervalTime(dic, IntervalType.Moments, t); AddIntervalTime(dic, IntervalType.AbsoluteDay, t); } TimeIntervals.Clear(); TimeIntervals.Add(t); BeginTime = t.Begin; EndTime = t.End; return(t); }
public static TimeIntervals ToTimeInterval(this String val) { TimeIntervals retVal = TimeIntervals.None; switch (val) { case "Day": retVal = TimeIntervals.Day; break; case "Week": retVal = TimeIntervals.Week; break; case "Month": retVal = TimeIntervals.Month; break; } return(retVal); }
internal void AddTimeInterval(ViewershipSpan span) { if (TimeIntervals.Count == 0) { TimeIntervals.Add(span); return; } ViewershipSpan previous = TimeIntervals.Last(); if (previous.Viewers == span.Viewers || span.Viewers == 0 || previous.Viewers == 0) { previous.SpanUnits += span.SpanUnits; previous.Span += span.Span; previous.EndTime += span.Span; if (previous.Viewers == 0) { previous.Viewers = span.Viewers; } return; } TimeIntervals.Add(span); }