feat: 高精度时间戳支持与 SM-15M 改进
This commit is contained in:
@@ -14,7 +14,7 @@ scheduled_num = 420
|
|||||||
_scheduled_num_desc = "默认记忆单元数量\n可被单元集设置覆盖"
|
_scheduled_num_desc = "默认记忆单元数量\n可被单元集设置覆盖"
|
||||||
refresh_on_resume = true
|
refresh_on_resume = true
|
||||||
_refresh_on_resume_desc = "[调试] 每当 Screen 激活后都刷新状态"
|
_refresh_on_resume_desc = "[调试] 每当 Screen 激活后都刷新状态"
|
||||||
algorithm = "FSRS"
|
algorithm = "SM-2"
|
||||||
_algorithm_desc = "默认记忆调度算法\n可被单元集设置覆盖"
|
_algorithm_desc = "默认记忆调度算法\n可被单元集设置覆盖"
|
||||||
|
|
||||||
[_algorithm_candidate]
|
[_algorithm_candidate]
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
algorithm = "FSRS"
|
algorithm = "NSP-0"
|
||||||
_algorithm_desc = "记忆调度算法"
|
_algorithm_desc = "记忆调度算法"
|
||||||
scheduled_num = 420
|
scheduled_num = 420
|
||||||
_scheduled_num_desc = "单次记忆单元数量"
|
_scheduled_num_desc = "单次记忆单元数量"
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,5 @@
|
|||||||
# 时间服务
|
# 时间服务
|
||||||
|
import datetime
|
||||||
import time
|
import time
|
||||||
|
|
||||||
from heurams.context import config_var
|
from heurams.context import config_var
|
||||||
@@ -33,3 +34,32 @@ def get_timestamp() -> float:
|
|||||||
result = time.time()
|
result = time.time()
|
||||||
logger.debug("获取当前时间戳: %f", result)
|
logger.debug("获取当前时间戳: %f", result)
|
||||||
return 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 的 datetime(naive 视为 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)
|
||||||
|
|||||||
Reference in New Issue
Block a user