gpt4 book ai didi

datetime - 如何将 xx 秒、分钟或小时添加到 DateTime 结构?

转载 作者:行者123 更新时间:2023-12-01 08:46:49 26 4
gpt4 key购买 nike

我想为现有的 DateTime 值添加特定的时间段(在 {{Y,M,D},{H,m,s}} 格式),但看不到允许我直接操作 DateTime 值的函数(例如在 Calendar 模块中)。

如何将(例如)10 秒、10 分钟或 10 小时添加到这样的值?

最佳答案

您可以使用 Calendar 模块将 DateTime 转换为秒,这样可以更轻松地添加所需的秒、分、小时等。

例如,添加 10 秒:

Date = {{2018,8,14},{13,10,25}}.
DateInSeconds = calendar:datetime_to_gregorian_seconds(Date). % 63701471425
NewDateInSeconds = DateInSeconds + 10. % 63701471435
calendar:gregorian_seconds_to_datetime(NewDateInSeconds). % {{2018,8,14},{13,10,35}}

10 分钟或 10 小时,只需进行一点数学运算:

Date = {{2018,8,14},{13,10,25}}.
DateInSeconds = calendar:datetime_to_gregorian_seconds(Date). % 63701471425
NewDateInSeconds = DateInSeconds + (10 * 60 * 60). % 63701507425 (10 hours)
calendar:gregorian_seconds_to_datetime(NewDateInSeconds). % {{2018,8,14},{23,10,25}}

为了让生活更轻松,您甚至可以为此创建一个函数,为现有 DateTime 添加额外时间(或从中减去时间):

-type datetime() :: {{non_neg_integer(), pos_integer(), pos_integer()},
{non_neg_integer(), non_neg_integer(), non_neg_integer()}}.
-type timespan() :: {integer(), integer(), integer()}.

-spec add_time_to_datetime(datetime(), timespan()) -> datetime().
add_time_to_datetime(Date, {Hour, Min, Sec}) ->
DateInSeconds = calendar:datetime_to_gregorian_seconds(Date),
NewDateInSeconds = DateInSeconds + (Hour * 60 * 60) + (Min * 60) + Sec,
calendar:gregorian_seconds_to_datetime(NewDateInSeconds).

关于datetime - 如何将 xx 秒、分钟或小时添加到 DateTime 结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51846985/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com