From fd088787bc52e93bbce8f6aeb080fa8f472015aa Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期一, 09 六月 2025 18:13:07 +0800
Subject: [PATCH] 功能完善

---
 third_data/history_k_data_manager.py |   46 +++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 45 insertions(+), 1 deletions(-)

diff --git a/third_data/history_k_data_manager.py b/third_data/history_k_data_manager.py
index cb995d5..3df8182 100644
--- a/third_data/history_k_data_manager.py
+++ b/third_data/history_k_data_manager.py
@@ -11,6 +11,7 @@
 from huaxin_client import l1_subscript_codes_manager
 from log_module.log import logger_debug
 from third_data import history_k_data_util
+from third_data.history_k_data_util import HistoryKDatasUtils
 from utils import tool, init_data_util
 
 
@@ -186,5 +187,48 @@
         return codes
 
 
+@tool.singleton
+class TradeDateManager:
+    # {"鏃ユ湡":鏃ユ湡鍒楄〃}
+    __date_list_dict = {}
+    """
+    浜ゆ槗鏃ユ湡绠$悊
+    """
+
+    def __load_dates(self, now_day):
+        if self.__date_list_dict.get(now_day):
+            return
+        # 鑾峰彇鍓嶅悗涓�涓湀鐨勪氦鏄撴棩鏈�
+        start_date = tool.date_sub(now_day, 30)
+        end_date = tool.date_sub(now_day, -30)
+        dates = HistoryKDatasUtils.get_trading_dates(start_date, end_date)
+        self.__date_list_dict[now_day] = dates
+
+    def get_next_trade_day(self, now_day):
+        """
+        鑾峰彇涓嬩竴涓氦鏄撴棩
+        @param now_day:
+        @return:
+        """
+        self.__load_dates(now_day)
+        for day in self.__date_list_dict[now_day]:
+            if day > now_day:
+                return day
+        return None
+
+    def get_previous_trade_day(self, now_day):
+        """
+        鑾峰彇涓婁竴涓氦鏄撴棩
+        @param now_day:
+        @return:
+        """
+        self.__load_dates(now_day)
+        for day in reversed(self.__date_list_dict[now_day]):
+            if day < now_day:
+                return day
+        return None
+
+
 if __name__ == "__main__":
-    print(HistoryKDataManager().get_history_bars_codes("2024-12-31"))
+    print(TradeDateManager().get_next_trade_day("2025-06-09"))
+    print(TradeDateManager().get_previous_trade_day("2025-06-09"))

--
Gitblit v1.8.0