From dc7922d80c1d133b6261b8af1d521567d2c0a35d Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期四, 30 十月 2025 16:51:39 +0800
Subject: [PATCH] Merge branch 'master' of http://mobile.secondworld.net.cn:10010/r/Project_SG_scripts

---
 Main/Utility/TimeUtility.cs |  231 ++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 162 insertions(+), 69 deletions(-)

diff --git a/Main/Utility/TimeUtility.cs b/Main/Utility/TimeUtility.cs
index b1bcaad..5889fb3 100644
--- a/Main/Utility/TimeUtility.cs
+++ b/Main/Utility/TimeUtility.cs
@@ -24,8 +24,7 @@
         }
     }
 
-    ////A0 04 鍚屾瀹㈡埛绔椂闂� #tagServerDateTime 涓殑 CrossServerTime 涓虹帺瀹跺湪瀛愭湇涓敹鍒扮殑璺ㄦ湇鏃堕棿
-    //CrossServerNow涓虹帺瀹剁櫥褰曞湪璺ㄦ湇鏈嶅姟鍣ㄩ噷鐨勯�氱煡鏃堕棿, 涓嶪LTimeUtility.ServerCrossNow锛堢帺瀹跺湪瀛愭湇鏀跺埌璺ㄦ湇鐨勬椂闂撮�氱煡锛変笉鍚�
+    //A0 04 鍚屾瀹㈡埛绔椂闂� #tagServerDateTime 涓殑 CrossServerTime 涓虹帺瀹跺湪瀛愭湇涓敹鍒扮殑璺ㄦ湇鏃堕棿
     static DateTime s_CrossServerTime = DateTime.Now;
     static float _crossCheckTime = 0;
     public static DateTime CrossServerNow
@@ -90,7 +89,7 @@
     public static readonly DateTime OriginalTime = new DateTime(1970, 1, 1, 8, 0, 0);
     public static readonly DateTime ClientOriginalTime = new DateTime(1, 1, 1, 0, 0, 0);
     /// <summary>
-    /// 鏈嶅姟鍣ㄦ椂闂寸浉姣旇捣濮嬫椂闂寸殑绉掓暟(涓昏鏂逛究姣旇緝)
+    /// 鏈嶅姟鍣ㄦ椂闂寸浉姣旇捣濮嬫椂闂寸殑绉掓暟(鍗虫湇鍔″櫒鐨勬椂闂存埑)
     /// </summary>
     public static int AllSeconds
     {
@@ -162,10 +161,7 @@
     public static event Action OnCreateRoleTimeRefresh;
     // public static void OnRefreshCreateRoleTime(HA124_tagMCPlayerInfo _package)
     // {
-    //     if (_package.socketType == ServerType.CrossSever)
-    //     {
-    //         return;
-    //     }
+
 
     //     createRoleTime = Convert.ToDateTime(UIHelper.GetTime(_package.CreateRoleTime));
     //     createRoleTimeTail = new DateTime(createRoleTime.Year, createRoleTime.Month, createRoleTime.Day);
@@ -177,71 +173,63 @@
     // }
 
     public static event Action OnServerTimeRefresh;
-    // public static void OnRefreshServerTime(HA004_tagServerDateTime vNetData)
-    // {
-    //     var dateTime = new DateTime(vNetData.Year, vNetData.Month, vNetData.Day, vNetData.Hour, vNetData.Minute, vNetData.Second);
-    //     if (vNetData.socketType == ServerType.CrossSever)
-    //     {
-    //         s_CrossServerTime = dateTime;
-    //         _crossCheckTime = Time.realtimeSinceStartup;
-    //     }
-    //     else
-    //     {
-    //         s_ServerTime = dateTime;
-    //         _checkTime = Time.realtimeSinceStartup;
-    //         if (OnServerTimeRefresh != null)
-    //         {
-    //             OnServerTimeRefresh();
-    //         }
-    //     }
+    public static void OnRefreshServerTime(HA004_tagServerDateTime vNetData)
+    {
+        var dateTime = new DateTime(vNetData.Year, vNetData.Month, vNetData.Day, vNetData.Hour, vNetData.Minute, vNetData.Second);
 
-    //     TimeDownMgr.Instance.Begin(TimeDownMgr.CoolTimeType.SyncServerTime, 60, (float tick) =>
-    //     {
-    //         SyncServerTime();
-    //     }, 60);
-    // }
+        s_ServerTime = dateTime;
+        _checkTime = Time.realtimeSinceStartup;
+        if (OnServerTimeRefresh != null)
+        {
+            OnServerTimeRefresh();
+        }
+
+        s_CrossServerTime = Convert.ToDateTime(vNetData.CrossServerTime);
+        _crossCheckTime = Time.realtimeSinceStartup;
+
+        TimeDownMgr.Instance.Begin(TimeDownMgr.CoolTimeType.SyncServerTime, 60, (float tick) =>
+        {
+            SyncServerTime();
+        }, 60);
+    }
 
     public static event Action OnServerOpenDayRefresh;
-    // public static void OnRefreshServerOpenDay(HA005_tagOpenServerDay package)
-    // {
-    //     if (package.socketType != ServerType.CrossSever)
-    //     {
-    //         OpenDay = package.Day;
-    //         IsMixServer = package.IsMixServer == 1;
-    //         MixOpenDay = package.MixDay;
-    //         openServerDayOfWeek = package.OpenWeekday == 7 ? DayOfWeek.Sunday : (DayOfWeek)package.OpenWeekday;
-    //         WeekOfYear = package.WeekOfYear;
-    //     }
+    public static void OnRefreshServerOpenDay(HA005_tagOpenServerDay package)
+    {
+        {
+            OpenDay = package.Day;
+            IsMixServer = package.IsMixServer == 1;
+            MixOpenDay = package.MixDay;
+            openServerDayOfWeek = package.OpenWeekday == 7 ? DayOfWeek.Sunday : (DayOfWeek)package.OpenWeekday;
+            WeekOfYear = package.WeekOfYear;
+        }
 
-    //     OnRefreshServerTime(new HA004_tagServerDateTime()
-    //     {
-    //         Year = package.NowYear,
-    //         Month = package.NowMonth,
-    //         Day = package.NowDay,
-    //         Hour = package.NowHour,
-    //         Minute = package.NowMinute,
-    //         Second = package.NowSecond,
-    //         MicSecond = package.NowMicSecond,
-    //         socketType = package.socketType,
-    //     });
+        OnRefreshServerTime(new HA004_tagServerDateTime()
+        {
+            Year = package.NowYear,
+            Month = package.NowMonth,
+            Day = package.NowDay,
+            Hour = package.NowHour,
+            Minute = package.NowMinute,
+            Second = package.NowSecond,
+            MicSecond = package.NowMicSecond,
+            socketType = package.socketType,
+        });
 
 
-    //     if (package.socketType != ServerType.CrossSever
-    //         && OnServerOpenDayRefresh != null)
-    //     {
-    //         OnServerOpenDayRefresh();
-    //     }
-    // }
+        if (OnServerOpenDayRefresh != null)
+        {
+            OnServerOpenDayRefresh();
+        }
+    }
 
-    // public static void SyncServerTime()
-    // {
-    //     CA002_tagClientRequestServerTime pak = new CA002_tagClientRequestServerTime();
-    //     GameNetSystem.Instance.SendInfo(pak);
-    //     if (GameNetSystem.Instance.crossServerSocketConnected)
-    //     {
-    //         GameNetSystem.Instance.SendToCrossServer(pak);
-    //     }
-    // }
+    public static void SyncServerTime()
+    {
+        CA002_tagClientRequestServerTime pak = new CA002_tagClientRequestServerTime();
+        GameNetSystem.Instance.SendInfo(pak);
+
+    }
+
     /// <summary>
     /// 鏍规嵁鏈嶅姟鍣ㄤ笅鍙戠殑绉掓暟鑾峰彇鏃堕棿
     /// </summary>
@@ -263,6 +251,31 @@
         int seconds = _seconds % 60;
         return StringUtility.Contact(hours.ToString("D2"), ":", mins.ToString("D2"), ":", seconds.ToString("D2"));
     }
+
+
+    //璇︾粏鏄剧ず
+    //xx灏忔椂xx鍒哫X绉�
+    //xx鍒哫X绉�
+    //xx绉�
+    public static string SecondsToHMSEx(int _seconds)
+    {
+        int hours = _seconds % 86400 / 3600;
+        int mins = _seconds % 3600 / 60;
+        int seconds = _seconds % 60;
+        if (hours > 0)
+        {
+            return StringUtility.Contact(hours, Language.Get("L1072"), mins, Language.Get("L1073"), seconds, Language.Get("L1075"));
+        }
+        else if (mins > 0)
+        {
+            return StringUtility.Contact(mins, Language.Get("L1073"), seconds, Language.Get("L1075"));
+        }
+        else
+        {
+            return StringUtility.Contact(seconds, Language.Get("L1075"));
+        }
+    }
+
 
     //渚嬪瓙锛涘垎锛氱
     //xx:xx
@@ -356,10 +369,63 @@
         return StringUtility.Contact(hours.ToString("D2"), ":", mins.ToString("D2"), ":", seconds.ToString("D2"));
     }
 
+    //鏋佺畝鏄剧ず
+    // x澶� 鎴栬�� x澶﹛灏忔椂
+    // x灏忔椂 鎴栬�� x灏忔椂x鍒�
+    // x鍒�
+    // x绉�
+    public static string SecondsToShortDHMS(int _seconds)
+    {
+        int days = _seconds / 86400;
+        int hours = _seconds % 86400 / 3600;
+        int mins = _seconds % 3600 / 60;
+        int seconds = _seconds % 60;
+        if (days > 0)
+        {
+            if (hours == 0)
+            {
+                return StringUtility.Contact(days, Language.Get("L1074"));
+            }
+            return StringUtility.Contact(days, Language.Get("L1074"), hours, Language.Get("L1072"));
+        }
+        else if (hours > 0)
+        {
+            if (mins == 0)
+            {
+                return StringUtility.Contact(hours, Language.Get("L1072"));
+            }
+            return StringUtility.Contact(hours, Language.Get("L1072"), mins, Language.Get("L1073"));
+        }
+        else if (mins > 0)
+        { 
+            return StringUtility.Contact(mins, Language.Get("L1073"));
+        }
+        return StringUtility.Contact(seconds, Language.Get("L1075"));
+    }
+
+
+
+    //渚嬪瓙
+    //澶т簬24灏忔椂鏄剧ず锛歺澶﹛x灏忔椂xx鍒�
+    //灏忎簬24灏忔椂鏄剧ず锛歺x:xx:xx
+    public static string SecondsToDHMSEx(int _seconds)
+    {
+        int days = _seconds / 86400;
+        int hours = _seconds % 86400 / 3600;
+        int mins = _seconds % 3600 / 60;
+        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.Contact(hours.ToString("D2"), ":", mins.ToString("D2"), ":", seconds.ToString("D2"));
+    }
+
+
     //渚嬪瓙
     //x澶�
     //x鏃�
-    //x鍒唜绉�
+    //x鍒�
     //x绉�
     public static string SecondsToConsumeRebate(int _seconds)
     {
@@ -373,15 +439,15 @@
         }
         else if (hours >= 1)
         {
-            return StringUtility.Contact(Mathf.CeilToInt(hours), Language.Get("Hour"));
+            return StringUtility.Contact(Mathf.CeilToInt(hours), Language.Get("L1072"));
         }
         else if (mins >= 1)
         {
-            return StringUtility.Contact(mins, Language.Get("Minute"), seconds, Language.Get("RealmWin_Bewrite_35"));
+            return StringUtility.Contact(mins, Language.Get("L1073"));
         }
         else
         {
-            return StringUtility.Contact(seconds, Language.Get("RealmWin_Bewrite_35"));
+            return StringUtility.Contact(seconds, Language.Get("L1075"));
         }
     }
 
@@ -406,6 +472,16 @@
     }
 
     /// <summary>
+    /// 鑾峰彇褰撳ぉ鐨�24鐐规椂闂�
+    /// </summary>
+    /// <returns></returns>
+    public static DateTime GetTodayEndTime()
+    {
+        var now = ServerNow.AddDays(1);
+        return new DateTime(now.Year, now.Month, now.Day);
+    }
+
+    /// <summary>
     /// 鑾峰彇涓嬩竴涓噷鏅�5鐐圭殑鏃堕棿
     /// </summary>
     /// <returns></returns>
@@ -418,6 +494,17 @@
         }
         return new DateTime(now.Year, now.Month, now.Day, 5, 0, 0).AddDays(1);
 
+    }
+
+    // 鍒�10鐐硅繕瑕佸灏戠锛屽鏋滃凡缁忚繃浜�10鐐癸紝杩斿洖0
+    public static int GetToTenClockSeconds()
+    {
+        var now = ServerNow;
+        if (now.Hour < 10)
+        {
+            return (int)(ServerNow - new DateTime(now.Year, now.Month, now.Day, 10, 0, 0)).TotalSeconds;
+        }
+        return 0;
     }
 
     //寮�鏈嶅ぉ缁撴潫鍊掕鏃讹紱鍗曚綅绉�
@@ -439,4 +526,10 @@
 
         return (ServerNow - startTime).Days;
     }
+
+    //浠婃棩鍓╀綑绉掓暟
+    public static int GetTodayRemainSeconds()
+    {
+        return (int)(GetTodayEndTime() - ServerNow).TotalSeconds;
+    }
 }

--
Gitblit v1.8.0