gpt4 book ai didi

datetime - 如何在 Elixir 中获取上个月

转载 作者:行者123 更新时间:2023-12-03 06:28:06 24 4
gpt4 key购买 nike

如何在不使用 Elixir 中的包或库的情况下获取上个月的数据?

例如,如果当前日期是 2018-01-25,我将得到 2017-12-25。或者如果当前日期是2018-03-31,我将得到2018-02-28(2018年不是闰年)

最佳答案

@Sheharyar 的答案几乎就在那里,唯一的区别是你需要减去两个月份的最大天数:

defmodule Dating do
def previous_month(%Date{day: day} = date) do
days = max(day, (Date.add(date, -day)).day)
Date.add(date, -days)
end
end

适用于所有情况:

iex|1 ▶ Dating.previous_month(~D[2018-03-31])
#⇒ ~D[2018-02-28]
iex|2 ▶ Dating.previous_month(~D[2018-03-01])
#⇒ ~D[2018-02-01]
iex|3 ▶ Dating.previous_month(~D[2018-01-02])
#⇒ ~D[2017-12-02]

关于datetime - 如何在 Elixir 中获取上个月,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53394783/

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