From 51b0f6ed9f4e1d3bb6f8144470b46908c7699a96 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期一, 11 五月 2026 16:20:37 +0800
Subject: [PATCH] Merge branch 'master' into h5version

---
 Main/Utility/TimeUtility.cs |  179 ++++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 126 insertions(+), 53 deletions(-)

diff --git a/Main/Utility/TimeUtility.cs b/Main/Utility/TimeUtility.cs
index 5889fb3..b9db750 100644
--- a/Main/Utility/TimeUtility.cs
+++ b/Main/Utility/TimeUtility.cs
@@ -100,6 +100,15 @@
         }
     }
 
+    public static int AllSecondsCrossServer
+    {
+        get
+        {
+            TimeSpan t = CrossServerNow - OriginalTime;
+            return (int)t.TotalSeconds;
+        }
+    }
+
     //1骞翠腑鐨勭鍑犲懆锛屼互鏈嶅姟绔负鍑嗭紝python鍜宑#绠楀嚭鏉ヤ笉涓�鏍�
     public static int WeekOfYear
     {
@@ -117,6 +126,12 @@
     }
 
     public static int MixOpenDay
+    {
+        get; private set;
+    }
+
+    //寮�鏈嶆椂闂存埑
+    public static int openServerTick
     {
         get; private set;
     }
@@ -159,18 +174,16 @@
     }
 
     public static event Action OnCreateRoleTimeRefresh;
-    // public static void OnRefreshCreateRoleTime(HA124_tagMCPlayerInfo _package)
-    // {
-
-
-    //     createRoleTime = Convert.ToDateTime(UIHelper.GetTime(_package.CreateRoleTime));
-    //     createRoleTimeTail = new DateTime(createRoleTime.Year, createRoleTime.Month, createRoleTime.Day);
-    //     if (OnCreateRoleTimeRefresh != null)
-    //     {
-    //         OnCreateRoleTimeRefresh();
-    //     }
-    //     Debug.LogFormat("CreateRoleTime {0}  CreateDays {1}", createRoleTimeTail, CreateDays);
-    // }
+    public static void OnRefreshCreateRoleTime(HA124_tagMCPlayerInfo _package)
+    {
+        createRoleTime = Convert.ToDateTime(UIHelper.GetTime(_package.CreateRoleTime));
+        createRoleTimeTail = new DateTime(createRoleTime.Year, createRoleTime.Month, createRoleTime.Day);
+        if (OnCreateRoleTimeRefresh != null)
+        {
+            OnCreateRoleTimeRefresh();
+        }
+        Debug.LogFormat("CreateRoleTime {0}  CreateDays {1}", createRoleTimeTail, CreateDays);
+    }
 
     public static event Action OnServerTimeRefresh;
     public static void OnRefreshServerTime(HA004_tagServerDateTime vNetData)
@@ -184,8 +197,11 @@
             OnServerTimeRefresh();
         }
 
-        s_CrossServerTime = Convert.ToDateTime(vNetData.CrossServerTime);
-        _crossCheckTime = Time.realtimeSinceStartup;
+        if (!string.IsNullOrEmpty(vNetData.CrossServerTime))
+        {
+            s_CrossServerTime = Convert.ToDateTime(vNetData.CrossServerTime);
+            _crossCheckTime = Time.realtimeSinceStartup;
+        }
 
         TimeDownMgr.Instance.Begin(TimeDownMgr.CoolTimeType.SyncServerTime, 60, (float tick) =>
         {
@@ -194,15 +210,14 @@
     }
 
     public static event Action OnServerOpenDayRefresh;
-    public static void OnRefreshServerOpenDay(HA005_tagOpenServerDay package)
+    public static void OnRefreshServerOpenDay(HA103_tagMCOpenServerDay package)
     {
-        {
-            OpenDay = package.Day;
-            IsMixServer = package.IsMixServer == 1;
-            MixOpenDay = package.MixDay;
-            openServerDayOfWeek = package.OpenWeekday == 7 ? DayOfWeek.Sunday : (DayOfWeek)package.OpenWeekday;
-            WeekOfYear = package.WeekOfYear;
-        }
+        OpenDay = package.Day;
+        IsMixServer = package.IsMixServer == 1;
+        MixOpenDay = package.MixDay;
+        openServerDayOfWeek = package.OpenWeekday == 7 ? DayOfWeek.Sunday : (DayOfWeek)package.OpenWeekday;
+        WeekOfYear = package.WeekOfYear;
+        openServerTick = (int)package.OpenServerTime;
 
         OnRefreshServerTime(new HA004_tagServerDateTime()
         {
@@ -249,7 +264,7 @@
         int hours = _seconds / 3600;
         int mins = _seconds % 3600 / 60;
         int seconds = _seconds % 60;
-        return StringUtility.Contact(hours.ToString("D2"), ":", mins.ToString("D2"), ":", seconds.ToString("D2"));
+        return StringUtility.Concat(hours.ToString("D2"), ":", mins.ToString("D2"), ":", seconds.ToString("D2"));
     }
 
 
@@ -264,15 +279,15 @@
         int seconds = _seconds % 60;
         if (hours > 0)
         {
-            return StringUtility.Contact(hours, Language.Get("L1072"), mins, Language.Get("L1073"), seconds, Language.Get("L1075"));
+            return StringUtility.Concat(hours.ToString(), Language.Get("L1072"), mins.ToString(), Language.Get("L1073"), seconds.ToString(), Language.Get("L1075"));
         }
         else if (mins > 0)
         {
-            return StringUtility.Contact(mins, Language.Get("L1073"), seconds, Language.Get("L1075"));
+            return StringUtility.Concat(mins.ToString(), Language.Get("L1073"), seconds.ToString(), Language.Get("L1075"));
         }
         else
         {
-            return StringUtility.Contact(seconds, Language.Get("L1075"));
+            return StringUtility.Concat(seconds.ToString(), Language.Get("L1075"));
         }
     }
 
@@ -283,7 +298,7 @@
     {
         int mins = _seconds % 3600 / 60;
         int seconds = _seconds % 60;
-        return StringUtility.Contact(mins.ToString("D2"), ":", seconds.ToString("D2"));
+        return StringUtility.Concat(mins.ToString("D2"), ":", seconds.ToString("D2"));
     }
 
     //渚嬪瓙锛涗笉瓒崇殑涓嶆樉绀� 濡�0澶�0:xx:xx:,鏄剧ず涓簒x:xx
@@ -294,7 +309,7 @@
         int hours = _seconds % 86400 / 3600;
         int mins = _seconds % 3600 / 60;
         int seconds = _seconds % 60;
-        return StringUtility.Contact(days > 0 ? days.ToString() : string.Empty,
+        return StringUtility.Concat(days > 0 ? days.ToString() : string.Empty,
             days > 0 ? Language.Get("L1074") + " " : string.Empty, hours > 0 ? hours.ToString() : string.Empty,
             hours > 0 ? ":" : string.Empty, mins >= 0 ? mins.ToString("D2") : string.Empty,
             mins >= 0 ? ":" : string.Empty, seconds >= 0 ? seconds.ToString("D2") : string.Empty,
@@ -311,19 +326,19 @@
         int days = _seconds / 86400;
         if (days > 0)
         {
-            return StringUtility.Contact(days, Language.Get("L1074"));
+            return StringUtility.Concat(days.ToString(), Language.Get("L1074"));
         }
         int hours = _seconds % 86400 / 3600;
         if (hours > 0)
         {
-            return StringUtility.Contact(hours, Language.Get("Hour"));
+            return StringUtility.Concat(hours.ToString(), Language.Get("Hour"));
         }
         int mins = Mathf.CeilToInt(_seconds % 3600 / 60.0f);
         if (mins > 0)
         {
-            return StringUtility.Contact(mins, Language.Get("Minute"));
+            return StringUtility.Concat(mins.ToString(), Language.Get("Minute"));
         }
-        return StringUtility.Contact(1, Language.Get("Minute"));
+        return StringUtility.Concat("1", Language.Get("Minute"));
     }
 
 
@@ -364,9 +379,9 @@
         int seconds = _seconds % 60;
         if (days > 0)
         {
-            return StringUtility.Contact(days, Language.Get("L1074"), " ", hours.ToString("D2"), ":", mins.ToString("D2"), ":", seconds.ToString("D2"));
+            return StringUtility.Concat(days.ToString(), Language.Get("L1074"), " ", hours.ToString("D2"), ":", mins.ToString("D2"), ":", seconds.ToString("D2"));
         }
-        return StringUtility.Contact(hours.ToString("D2"), ":", mins.ToString("D2"), ":", seconds.ToString("D2"));
+        return StringUtility.Concat(hours.ToString("D2"), ":", mins.ToString("D2"), ":", seconds.ToString("D2"));
     }
 
     //鏋佺畝鏄剧ず
@@ -384,23 +399,23 @@
         {
             if (hours == 0)
             {
-                return StringUtility.Contact(days, Language.Get("L1074"));
+                return StringUtility.Concat(days.ToString(), Language.Get("L1074"));
             }
-            return StringUtility.Contact(days, Language.Get("L1074"), hours, Language.Get("L1072"));
+            return StringUtility.Concat(days.ToString(), Language.Get("L1074"), hours.ToString(), Language.Get("L1072"));
         }
         else if (hours > 0)
         {
             if (mins == 0)
             {
-                return StringUtility.Contact(hours, Language.Get("L1072"));
+                return StringUtility.Concat(hours.ToString(), Language.Get("L1072"));
             }
-            return StringUtility.Contact(hours, Language.Get("L1072"), mins, Language.Get("L1073"));
+            return StringUtility.Concat(hours.ToString(), Language.Get("L1072"), mins.ToString(), Language.Get("L1073"));
         }
         else if (mins > 0)
-        { 
-            return StringUtility.Contact(mins, Language.Get("L1073"));
+        {
+            return StringUtility.Concat(mins.ToString(), Language.Get("L1073"));
         }
-        return StringUtility.Contact(seconds, Language.Get("L1075"));
+        return StringUtility.Concat(seconds.ToString(), Language.Get("L1075"));
     }
 
 
@@ -416,18 +431,18 @@
         int seconds = _seconds % 60;
         if (days > 0)
         {
-            return StringUtility.Contact(days, Language.Get("L1074"), hours.ToString("D2"), Language.Get("L1072"), mins.ToString("D2"), Language.Get("L1073"));
+            return StringUtility.Concat(days.ToString(), Language.Get("L1074"), hours.ToString("D2"), Language.Get("L1072"), mins.ToString("D2"), Language.Get("L1073"));
         }
-        return StringUtility.Contact(hours.ToString("D2"), ":", mins.ToString("D2"), ":", seconds.ToString("D2"));
+        return StringUtility.Concat(hours.ToString("D2"), ":", mins.ToString("D2"), ":", seconds.ToString("D2"));
     }
 
 
-    //渚嬪瓙
+    //渚嬪瓙 澶╁拰灏忔椂 鍚戜笂鍙栨暣 濡�1澶�1灏忔椂 鏄剧ず涓�2澶�
     //x澶�
     //x鏃�
     //x鍒�
     //x绉�
-    public static string SecondsToConsumeRebate(int _seconds)
+    public static string SecondsToOnlyTime(int _seconds)
     {
         float days = (float)_seconds / 86400;
         float hours = (float)_seconds % 86400 / 3600;
@@ -435,19 +450,19 @@
         float seconds = (float)_seconds % 60;
         if (days >= 1)
         {
-            return StringUtility.Contact(Mathf.CeilToInt(days), Language.Get("L1074"));
+            return StringUtility.Concat(Mathf.CeilToInt(days).ToString(), Language.Get("L1074"));
         }
         else if (hours >= 1)
         {
-            return StringUtility.Contact(Mathf.CeilToInt(hours), Language.Get("L1072"));
+            return StringUtility.Concat(Mathf.CeilToInt(hours).ToString(), Language.Get("L1072"));
         }
         else if (mins >= 1)
         {
-            return StringUtility.Contact(mins, Language.Get("L1073"));
+            return StringUtility.Concat(mins.ToString(), Language.Get("L1073"));
         }
         else
         {
-            return StringUtility.Contact(seconds, Language.Get("L1075"));
+            return StringUtility.Concat(seconds.ToString(), Language.Get("L1075"));
         }
     }
 
@@ -469,6 +484,12 @@
     {
         var now = ServerNow;
         return new DateTime(now.Year, now.Month, now.Day);
+    }
+
+    public static int GetTodayStartTick()
+    {
+        var now = ServerNow;
+        return (int)(GetTodayStartTime() - OriginalTime).TotalSeconds;
     }
 
     /// <summary>
@@ -496,13 +517,13 @@
 
     }
 
-    // 鍒�10鐐硅繕瑕佸灏戠锛屽鏋滃凡缁忚繃浜�10鐐癸紝杩斿洖0
-    public static int GetToTenClockSeconds()
+    // 浠婃棩鍒皒鐐硅繕瑕佸灏戠锛屽鏋滃凡缁忚繃浜唜鐐癸紝杩斿洖0
+    public static int GetToTheHourSeconds(int hour = 10)
     {
         var now = ServerNow;
-        if (now.Hour < 10)
+        if (now.Hour < hour)
         {
-            return (int)(ServerNow - new DateTime(now.Year, now.Month, now.Day, 10, 0, 0)).TotalSeconds;
+            return (int)(new DateTime(now.Year, now.Month, now.Day, hour, 0, 0) - ServerNow).TotalSeconds;
         }
         return 0;
     }
@@ -532,4 +553,56 @@
     {
         return (int)(GetTodayEndTime() - ServerNow).TotalSeconds;
     }
+
+    #region 璺ㄦ湇鍜屾湰鏈嶅叕鐢ㄦ帴鍙�
+    //褰撴湁鐨勫姛鑳戒細浠庢湰鏈嶅姛鑳藉彉鎴愯法鏈嶅姛鑳界殑鏃跺�欑粺涓�鐢ㄨ繖浜涙帴鍙e鐞嗘椂闂�
+    //鍚勮嚜鐨勫姛鑳戒紶鑷繁鐨剒oneID
+
+    // 鑾峰彇褰撳墠鏃堕棿, 鍏細璺ㄥ尯鍓嶅彇鏈湇鏃堕棿锛岃法鏈嶅悗鍙栬法鏈嶆椂闂�
+    public static DateTime GetCommServerNow(int zoneID = 0)
+    {
+        if (zoneID == 0)
+        {
+            return ServerNow;
+        }
+        else
+        {
+            return CrossServerNow;
+        }
+    }
+
+    public static int GetCommServerTick(int zoneID = 0)
+    {
+        if (zoneID == 0)
+        {
+            return AllSeconds;
+        }
+        else
+        {
+            return AllSecondsCrossServer;
+        }
+    }
+
+    public static DateTime GetCommTodayEndTime(int zoneID = 0)
+    {
+        var now = GetCommServerNow(zoneID).AddDays(1);
+        return new DateTime(now.Year, now.Month, now.Day);
+    }
+
+    //鑾峰彇褰撳墠鍛ㄥ嚑锛�1-7
+    public static int GetCommonWeekday(int zoneID = 0)
+    {
+        var day = GetCommServerNow(zoneID).DayOfWeek;
+        return day == DayOfWeek.Sunday ? 7 : (int)day;
+    }
+
+    //鏈懆缁撴潫鏃堕棿 绉�
+    public static int GetCommonWeekEndTime(int zoneID = 0)
+    {
+        var now = GetCommServerNow(zoneID);
+        var weekDay = GetCommonWeekday(zoneID);
+        var endDay = now.AddDays(7 - weekDay + 1);
+        return (int)(new DateTime(endDay.Year, endDay.Month, endDay.Day) - now).TotalSeconds;
+    }
+    #endregion
 }

--
Gitblit v1.8.0