Wie Monate in Ruby on Rails durchlaufen werden

8

Ich muss mehrere Monate in einer Ruby on Rails-Anwendung durchlaufen. Für jeden Monat muss ich den ersten und letzten Tag des jeweiligen Monats finden. Diese Daten werden dann in einer separaten Abfrage verwendet, um Ereignisse zu finden, die während dieser Daten auftreten, und Berechnungen für sie auszuführen.

Zuerst habe ich versucht, etwas wie:

%Vor%

Natürlich wird das Jahr in diesem Fall nicht aktualisiert, wenn vor 11 Monaten das vorherige Jahr wieder aufgenommen wurde. Und ich denke nicht, dass diese Art von for / each-Schleife funktioniert. Ich habe auch versucht, die Zahlen zu einem Array zuzuordnen und die gleiche Methode zu verwenden, aber einen Fehler erhalten.

Was ist der beste Weg, um so etwas zu erreichen?

    
Justin 16.12.2012, 05:10
quelle

4 Antworten

11

Zählen Sie zuerst die Anzahl der Monate zwischen zwei Daten ( mit freundlicher Genehmigung von Massimiliano Peluso ) :

%Vor%

Dann suchen Sie ab dem Startmonat, der jeden Monat danach zählt, das erste / letzte Datum und fügen Sie es an ein Akkumulatorfeld an.

%Vor%

Jetzt wird dates ein Array mit verschachtelten Date Paaren enthalten, die dem ersten und letzten Datum jedes Monats entsprechen. Dieses dates -Array wird für die Verarbeitung leicht zu iterieren sein.

%Vor%

Dies ist getestet und funktioniert in Rails 3.2.5 / Ruby 1.9.3p194

    
Substantial 16.12.2012, 07:03
quelle
12

Hier ist ein Weg, es zu tun:

%Vor%

= & gt;

%Vor%     
Prakash Murthy 16.12.2012 05:41
quelle
6
%Vor%     
stoodfarback 16.12.2012 11:30
quelle
6
%Vor%     
tehtorq 03.07.2013 08:44
quelle