public static SlicesQuery From(DateTimeZone timeSlices, int address) { SlicesQuery result = new SlicesQuery(); timeSlices = timeSlices.AddMinutes(-30); //Это надо для правельной адрессации грана result.Month = (byte)timeSlices.Month; result.Day = (byte)timeSlices.Day; result.Index = (byte)(timeSlices.Hour * 2 + (int)((timeSlices.Minute == 0) ? 0 : 1)); result.Address = address; result.TimeSlices = timeSlices; return(result); }
/// <summary> /// Корректировка. если в гране TimeSlices на 9:30 то реально в емаксе значение положиться на 10:00 те со сдвигом в 30 /// минут. Поэтому и введина уточнение /// </summary> /// <returns></returns> public DateTimeZone GetTimeSlicesFrom30() { return(TimeSlices.AddMinutes(30)); }
/// <summary>Выщитывает реально полученное время среза</summary> /// <returns></returns> public DateTimeZone ToRealDateTime(DateTimeZone timeCut) { var result = new DateTimeZone(timeCut.Year, timeCut.Month, timeCut.Day, timeCut.TimeZoneMap); return(result.AddMinutes(Index * 3).AddMinutes(3)); }