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