public SilenceTimeSection GetSilenceTimeFromTime(SilenceTimeSection.SectionType type, DateTime time, out int second) { second = 0; List <SilenceTimeSection>[] listlist = GetSilenceTimeSectionListList(type); foreach (var section in listlist[(int)time.DayOfWeek]) { DateTime beginTime = new DateTime(time.Year, time.Month, time.Day, section.beginHour, section.beginMinute, 0); DateTime endTime; if (section.crossDayType == SilenceTimeSection.CrossDayType.EndCross) { DateTime dateTimeNextDay = time.AddDays(1); endTime = new DateTime(dateTimeNextDay.Year, dateTimeNextDay.Month, dateTimeNextDay.Day, section.endHour, section.endMinute, 0); } else { endTime = new DateTime(time.Year, time.Month, time.Day, section.endHour, section.endMinute, 0); } if (time > beginTime && time < endTime) { return(section); } if (time < beginTime) { second = (int)(beginTime - time).TotalSeconds; return(section); } } return(null); }
List <SilenceTimeSection>[] GetSilenceTimeSectionListList(SilenceTimeSection.SectionType type) { switch (type) { case SilenceTimeSection.SectionType.Study: return(listStudyTimeSection); case SilenceTimeSection.SectionType.Sleep: return(listSleepTimeSection); default: return(listOtherTimeSection); } }
void ProcessSilenceTime(SilenceTimeSection.SectionType type, DateTime time) { int second = 0; SilenceTimeSection timeSection = silenceTimeDataManager.GetSilenceTimeFromTime(type, time, out second); if (timeSection != null) { if (second == 0) { DateTime endTime = new DateTime(time.Year, time.Month, time.Day, timeSection.endHour, timeSection.endMinute, 0); double escapeTime = (endTime - time).TotalSeconds; PushNewState(timeSection, escapeTime, false); } //else //{ // StartCoroutine(DelayForSilenceTime(second, timeSection)); //} } }