From 75a6dd7122830280a0a5b23dea06ce304bf361e6 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期六, 08 九月 2018 16:18:33 +0800
Subject: [PATCH] 3243 【开发】开服限时活动定制
---
System/HeavenBattle/HeavenBattleModel.cs | 64 ++++++++++++++++++++++++++++++++
1 files changed, 64 insertions(+), 0 deletions(-)
diff --git a/System/HeavenBattle/HeavenBattleModel.cs b/System/HeavenBattle/HeavenBattleModel.cs
index cc48f07..837cd1c 100644
--- a/System/HeavenBattle/HeavenBattleModel.cs
+++ b/System/HeavenBattle/HeavenBattleModel.cs
@@ -553,6 +553,70 @@
#endregion
}
+public struct WeekTime
+{
+ public int dayOfWeek { get; private set; }
+ public int startHour { get; private set; }
+ public int startMinute { get; private set; }
+ public int startSeconds { get; private set; }
+ public int endHour { get; private set; }
+ public int endMinute { get; private set; }
+
+ public WeekTime(int _weekDay, int _startHour, int _startMinute, int _endHour, int _endMinute, int _startSeconds = 0)
+ {
+ dayOfWeek = _weekDay;
+ startHour = _startHour;
+ startMinute = _startMinute;
+ startSeconds = _startSeconds;
+ endHour = _endHour;
+ endMinute = _endMinute;
+ }
+ public static TimeSpan operator -(WeekTime y, WeekTime x)
+ {
+ var _totalSeconds = 0;
+ int i = x.dayOfWeek;
+ for (i = x.dayOfWeek; i != y.dayOfWeek; i = i == 7 ? 1 : i + 1)
+ {
+ if (i == x.dayOfWeek)
+ {
+ _totalSeconds += (23 - x.startHour) * 3600 + (59 - x.startMinute) * 60 + 60 - x.startSeconds;
+ }
+ else
+ {
+ _totalSeconds += 24 * 3600;
+ }
+ }
+ if (i == y.dayOfWeek)
+ {
+ if (x.dayOfWeek == i)
+ {
+ var _timeSpany = new TimeSpan(y.startHour, y.startMinute, y.startSeconds);
+ var _timeSpanx = new TimeSpan(x.startHour, x.startMinute, x.startSeconds);
+ _totalSeconds += (int)(_timeSpany.TotalSeconds - _timeSpanx.TotalSeconds);
+ }
+ else
+ {
+ _totalSeconds += y.startHour * 3600;
+ }
+ }
+ return new TimeSpan(_totalSeconds * TimeSpan.TicksPerSecond);
+ }
+
+ private static WeekTime s_Now = new WeekTime();
+ public static WeekTime Now
+ {
+ get
+ {
+ var _dayOfWeek = TimeUtility.ServerNow.DayOfWeek == DayOfWeek.Sunday ? 7 : (int)TimeUtility.ServerNow.DayOfWeek;
+ s_Now.dayOfWeek = _dayOfWeek;
+ s_Now.startHour = TimeUtility.Hour;
+ s_Now.startMinute = TimeUtility.Minute;
+ s_Now.startSeconds = TimeUtility.Second;
+ return s_Now;
+ }
+ }
+}
+
public enum HeavenBattleState
{
None,
--
Gitblit v1.8.0