0
私は日付を含むマップのリストを持っています。私はそのリストがどれくらいの長さであるかは分かりません(何年にもわたることがあります)。私が知っているのは、リストは日付でソートされていて、重複した日付はないということです。日のリストを日のリストを含む月のリストに分割します
例:
[
%{date: ~D[2017-01-01], y: ["x"]}, %{date: ~D[2017-01-02], y: ["x"]},
%{date: ~D[2017-01-03], y: ["x"]}, %{date: ~D[2017-01-04], y: ["x"]},
%{date: ~D[2017-01-05], y: ["x"]}, %{date: ~D[2017-01-06], y: ["x"]},
%{date: ~D[2017-01-07], y: ["x"]}, %{date: ~D[2017-01-08], y: ["x"]},
%{date: ~D[2017-01-09], y: ["x"]}, %{date: ~D[2017-01-10], y: ["x"]},
%{date: ~D[2017-01-11], y: ["x"]}, %{date: ~D[2017-01-12], y: ["x"]},
%{date: ~D[2017-01-13], y: ["x"]}, %{date: ~D[2017-01-14], y: ["x"]},
%{date: ~D[2017-01-15], y: ["x"]}, %{date: ~D[2017-01-16], y: ["x"]},
%{date: ~D[2017-01-17], y: ["x"]}, %{date: ~D[2017-01-18], y: ["x"]},
%{date: ~D[2017-01-19], y: ["x"]}, %{date: ~D[2017-01-20], y: ["x"]},
%{date: ~D[2017-01-21], y: ["x"]}, %{date: ~D[2017-01-22], y: ["x"]},
%{date: ~D[2017-01-23], y: ["x"]}, %{date: ~D[2017-01-24], y: ["x"]},
%{date: ~D[2017-01-25], y: ["x"]}, %{date: ~D[2017-01-26], y: ["x"]},
%{date: ~D[2017-01-27], y: ["x"]}, %{date: ~D[2017-01-28], y: ["x"]},
%{date: ~D[2017-01-29], y: ["x"]}, %{date: ~D[2017-01-30], y: ["x"]},
%{date: ~D[2017-01-31], y: ["x"]}, %{date: ~D[2017-02-01], y: ["x"]},
%{date: ~D[2017-02-02], y: ["x"]}, %{date: ~D[2017-02-03], y: ["x"]}
]
私は日が含まれている月のリストが欲しい:
[
[
%{date: ~D[2017-01-01], y: ["x"]}, %{date: ~D[2017-01-02], y: ["x"]},
%{date: ~D[2017-01-03], y: ["x"]}, %{date: ~D[2017-01-04], y: ["x"]},
%{date: ~D[2017-01-05], y: ["x"]}, %{date: ~D[2017-01-06], y: ["x"]},
%{date: ~D[2017-01-07], y: ["x"]}, %{date: ~D[2017-01-08], y: ["x"]},
%{date: ~D[2017-01-09], y: ["x"]}, %{date: ~D[2017-01-10], y: ["x"]},
%{date: ~D[2017-01-11], y: ["x"]}, %{date: ~D[2017-01-12], y: ["x"]},
%{date: ~D[2017-01-13], y: ["x"]}, %{date: ~D[2017-01-14], y: ["x"]},
%{date: ~D[2017-01-15], y: ["x"]}, %{date: ~D[2017-01-16], y: ["x"]},
%{date: ~D[2017-01-17], y: ["x"]}, %{date: ~D[2017-01-18], y: ["x"]},
%{date: ~D[2017-01-19], y: ["x"]}, %{date: ~D[2017-01-20], y: ["x"]},
%{date: ~D[2017-01-21], y: ["x"]}, %{date: ~D[2017-01-22], y: ["x"]},
%{date: ~D[2017-01-23], y: ["x"]}, %{date: ~D[2017-01-24], y: ["x"]},
%{date: ~D[2017-01-25], y: ["x"]}, %{date: ~D[2017-01-26], y: ["x"]},
%{date: ~D[2017-01-27], y: ["x"]}, %{date: ~D[2017-01-28], y: ["x"]},
%{date: ~D[2017-01-29], y: ["x"]}, %{date: ~D[2017-01-30], y: ["x"]},
%{date: ~D[2017-01-31], y: ["x"]}
],
[
%{date: ~D[2017-02-01], y: ["x"]},
%{date: ~D[2017-02-02], y: ["x"]}, %{date: ~D[2017-02-03], y: ["x"]}
]
]
各ヶ月が異なる長さ(プラスうるう年の問題を)持っているので、私はどのように考えていますリストを分割する。これはできますか?
FWIW、 'Enum.group_by/3 'あなたの前の質問に対する答えで3時間前に導入されたのは、簡単に同じトリックです(' Enum.chunk_by/2'は間違いなく良い選択です): 'list |> Enum.group_by(fn%{date: %{年:年、月:月}} - > {年、月}終了)|> Map.values'。 – mudasobwa