| | |
| | |
|
| | | }
|
| | |
|
| | | public bool TryGetNextOpenTime(out HourMinute _hourMinute)
|
| | | {
|
| | | _hourMinute = default(HourMinute);
|
| | |
|
| | | var openDayWeek = (int)TimeUtility.openServerDayOfWeek;
|
| | | var dayIndex = TimeUtility.OpenDay + 1;
|
| | | var maxSpecialDays = 15 - (openDayWeek == 0 ? 7 : openDayWeek);
|
| | | var hour = TimeUtility.ServerNow.Hour;
|
| | | var minute = TimeUtility.ServerNow.Minute;
|
| | | var mixDayIndex = 0;
|
| | | for (int i = 0; i <= 7; i++)//一周内必须有活动
|
| | | {
|
| | | List<HourMinute> hourminutes = null;
|
| | | var days = dayIndex + i;
|
| | | if (IsInMixServerCustomDay(days, out mixDayIndex))
|
| | | {
|
| | | if (!mixServerOpenTimes.ContainsKey(mixDayIndex))
|
| | | {
|
| | | continue;
|
| | | }
|
| | | hourminutes = mixServerOpenTimes[mixDayIndex];
|
| | | }
|
| | | else if (days <= maxSpecialDays)
|
| | | {
|
| | | if (!specialOpenTimes.ContainsKey(openDayWeek)
|
| | | || !specialOpenTimes[openDayWeek].ContainsKey(days))
|
| | | {
|
| | | continue;
|
| | | }
|
| | | hourminutes = specialOpenTimes[openDayWeek][days];
|
| | | }
|
| | | else
|
| | | {
|
| | | var dayOfWeek = (int)TimeUtility.ServerNow.AddTicks(i * TimeSpan.TicksPerDay).DayOfWeek;
|
| | | if (!openTimes.ContainsKey(dayOfWeek))
|
| | | {
|
| | | continue;
|
| | | }
|
| | | hourminutes = openTimes[dayOfWeek];
|
| | | }
|
| | | if (hourminutes != null)
|
| | | {
|
| | | foreach (var hourMinute in hourminutes)
|
| | | {
|
| | | if (days == dayIndex && hourMinute.AfterOpenTime(hour, minute))
|
| | | {
|
| | | continue;
|
| | | }
|
| | | _hourMinute = hourMinute;
|
| | | return true;
|
| | | }
|
| | | }
|
| | | }
|
| | | return false;
|
| | | }
|
| | |
|
| | | bool IsInMixServerCustomDay(int day, out int index)
|
| | | {
|
| | | index = -1;
|