Пример #1
0
        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);
        }
Пример #2
0
        List <SilenceTimeSection>[] GetSilenceTimeSectionListList(SilenceTimeSection.SectionType type)
        {
            switch (type)
            {
            case SilenceTimeSection.SectionType.Study:
                return(listStudyTimeSection);

            case SilenceTimeSection.SectionType.Sleep:
                return(listSleepTimeSection);

            default:
                return(listOtherTimeSection);
            }
        }
Пример #3
0
        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));
                //}
            }
        }