Ich erstelle einen Bereich für jeden Monat in meinem Beispielbereich.Ruby: Gruppieren eines Datumsbereichs nach Jahr und Monat
example_range = (Time.zone.today..2.years.from_now)
Ausgabe sollte wie so aussehen:
=> [Wed, 03 Aug 2016..Wed, 31 Aug 2016, Thu, 01 Sep 2016..Fri,
30 Sep 2016, Sat, 01 Oct 2016..Mon, 03 Oct 2016, ...]
Im Moment dieses ich tue, die nicht länger als ein Jahr für Bereiche nicht funktioniert, weil die Gruppierung '16 Januar gestellt wird und Januar '17 in einer Gruppe.
example_range.group_by(&:month).each { |_, month| month.first..month.last }
Ich habe auch versucht das, aber auf diese Rubin segfaults aus irgendeinem Grund ...
example_range.group_by(&:year).map{ |ary| ary.group_by(&:month)}
Kennt jemand eine schönere (oder zumindest arbeiten) Art und Weise, dies zu tun?
1. Dies ist eine Frage sein sollte, nicht eine Frage und eine Antwort . Sie sollten den Abschnitt "Lösung" entfernen. Wenn Sie sagen möchten, dass Sie eine bestimmte Lösung verwenden, tun Sie dies als Kommentar zur zutreffenden Antwort. Wenn Sie selbst eine Antwort geben möchten, tun Sie es als Antwort. 2. Diese Frage bittet um ein Beispiel. Wenn Sie ein Beispiel angeben, zeigen Sie das erwartete oder gewünschte Ergebnis an und weisen Sie jedem Eingabeobjekt eine Variable zu (z. B. 'arr = [1,2,3] '), damit die Leser auf diese Variablen in Antworten und Kommentaren verweisen können ihre Antwort. –
danke @CarySwoveland, ich habe meine Frage verbessert. – andialles
Viel besser ... –