From 1ad03cc2f91d75e80fc3dc42e2ac1fadc9a2bfec Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 11 二月 2026 16:10:43 +0800
Subject: [PATCH] Merge branch 'master' into h5version

---
 Main/Utility/TimeUtility.cs |  120 +++++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 87 insertions(+), 33 deletions(-)

diff --git a/Main/Utility/TimeUtility.cs b/Main/Utility/TimeUtility.cs
index 5889fb3..587220d 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
     {
@@ -184,8 +193,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,7 +206,7 @@
     }
 
     public static event Action OnServerOpenDayRefresh;
-    public static void OnRefreshServerOpenDay(HA005_tagOpenServerDay package)
+    public static void OnRefreshServerOpenDay(HA103_tagMCOpenServerDay package)
     {
         {
             OpenDay = package.Day;
@@ -249,7 +261,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 +276,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 +295,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 +306,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 +323,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 +376,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 +396,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 +428,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 +447,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 +481,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 +514,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 +550,40 @@
     {
         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);
+    }
+    #endregion
 }

--
Gitblit v1.8.0