В настоящее время я работаю с датами, и я хочу перебирать между двумя датами по возрастанию дня. мои значения:Итерация между датами в Elixir
timezone =
case extractor.timezone do
nil -> "Etc/UTC"
_ -> extractor.timezone
end
start_date =
extractor.from_date
|> Ecto.DateTime.to_erl
|> Calendar.DateTime.from_erl!(timezone)
end_date =
extractor.to_date
|> Ecto.DateTime.to_erl
|> Calendar.DateTime.from_erl!(timezone)
total_days = find_difference(end_date, start_date)
IO.inspect iterate(schedule["Friday"], start_date, timezone)
моя цель сделать это, я буду перебирать между датами начала и окончания. Увеличивая день в день начала, с календарем я собираюсь забрать день недели Calendar.Date.day_of_week_name
и собираюсь передать его в расписание.
Теперь я пытаюсь создать цикл, который может перейти от даты начала до конца. Enum
не помогает мне прямо сейчас. Любое другое предположение, что как я могу создать цикл? для даты
UPDATE: Я пытаюсь петлю таким образом
for _ <- 1..total_days do
day_of_week = start_date |> Calendar.Date.day_of_week_name
IEx.pry
IO.inspect iterate(schedule[day_of_week], start_date, timezone)
start_date = start_date |> Calendar.DateTime.to_erl |> Calendar.DateTime.from_erl!(timezone, {123456, 6}) |> Calendar.DateTime.add!(86400)
end
Но когда начинается цикл снова не принимают значения новые START_DATE?
сейчас в конце мне нужно сделать как 'acc |> Calendar.DateTime.to_erl |> Calendar.DateTime.from_erl! (Timezone, {123456, 6}) |> Calendar.DateTime.add! (86400) '? – ijunaidfarooq
В последней строке вы должны создать значение, которое будет передано как значение 'acc'. – mudasobwa
На самом деле, я снова запустил start_date в конце, и это дало мне ошибку, поэтому спросить! – ijunaidfarooq