feat: 高精度时间戳支持与 SM-15M 改进

This commit is contained in:
2026-04-25 02:14:55 +08:00
parent fa2f8fa701
commit dead6cb1a1
5 changed files with 777 additions and 1777 deletions

View File

@@ -14,7 +14,7 @@ scheduled_num = 420
_scheduled_num_desc = "默认记忆单元数量\n可被单元集设置覆盖"
refresh_on_resume = true
_refresh_on_resume_desc = "[调试] 每当 Screen 激活后都刷新状态"
algorithm = "FSRS"
algorithm = "SM-2"
_algorithm_desc = "默认记忆调度算法\n可被单元集设置覆盖"
[_algorithm_candidate]

View File

@@ -1,4 +1,4 @@
algorithm = "FSRS"
algorithm = "NSP-0"
_algorithm_desc = "记忆调度算法"
scheduled_num = 420
_scheduled_num_desc = "单次记忆单元数量"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,5 @@
# 时间服务
import datetime
import time
from heurams.context import config_var
@@ -33,3 +34,32 @@ def get_timestamp() -> float:
result = time.time()
logger.debug("获取当前时间戳: %f", result)
return result
def get_timestamp_ms() -> int:
"""获取当前毫秒级 Unix 时间戳"""
return int(get_timestamp() * 1000)
def daystamp_to_datetime(daystamp: int) -> datetime.datetime:
"""将日戳转换为 UTC datetime (当日午夜)"""
return datetime.datetime(1970, 1, 1, tzinfo=datetime.timezone.utc) + datetime.timedelta(
days=daystamp
)
def datetime_to_daystamp(dt: datetime.datetime) -> int:
"""将 datetime 转换为日戳(从 1970-01-01 起的天数)
接受带时区或 naive 的 datetimenaive 视为 UTC
"""
epoch = datetime.datetime(1970, 1, 1, tzinfo=datetime.timezone.utc)
if dt.tzinfo is None:
dt = dt.replace(tzinfo=datetime.timezone.utc)
delta = dt - epoch
return delta.days
def get_now_datetime() -> datetime.datetime:
"""获取当前时间的 UTC datetime遵守时间覆盖"""
return datetime.datetime.fromtimestamp(get_timestamp(), tz=datetime.timezone.utc)