Ruby: Wie man eine Stunde (oder einen Tag) aus einer Datum-Uhrzeit-Zeichenfolge extrahiert

8

Ich ziehe Datum-Uhrzeit-Zeichenfolgen aus einer großen CSV-Datei, die wie folgt aussehen:

%Vor%

Ich möchte nur die Stunde extrahieren, damit ich ein Histogramm aller Stunden erstellen kann, um die häufigsten zu finden. Ebenso möchte ich Tage der Woche (Namen) aus den Daten extrahieren und ein Histogramm der häufigsten Tage erstellen.

Ich bin neu bei Ruby, habe die Informationen nachgeschaut, für Anfänger haben verschiedene Formen des Folgenden ausprobiert, aber kein Glück:

%Vor%

Können Sie bitte einen einfachen (und klaren) Weg angeben, um das oben genannte zu erreichen? Auch Vorschläge zur Darstellung der Ergebnisse wären großartig. Ich denke an ein Hash-Array für die Stunden (24 Einträge) und eines für die Tage (7 Einträge)? Was wäre der sauberste Algorithmus, um sie zu laden, während ich die Datum-Zeit-Strings durchblättere und sie dann mit den häufigsten auf der Oberseite neu sortiere? Danke !!

    
pete 02.05.2013, 01:01
quelle

2 Antworten

12

Dies ist der Ausgangspunkt:

%Vor%

Datumsformate wie "19.11.2008" stellen beim Parsen ein Problem dar, da standardmäßig das folgende Format verwendet wird:

%Vor%

Das Datum wird aufgebrochen, wenn es einen Monatswert von 19 anzeigt. '%m/%d/%Y' ist auf der ganzen Welt nicht so populär wie '%d/%m/%Y' , weshalb Ruby standardmäßig darauf eingestellt ist.

Sobald Sie den Zeitstempel analysiert haben, können Sie leicht Teile daraus extrahieren:

%Vor%

Beachten Sie, dass wday Werte von 0..6 zurückgibt, nicht 1..7 , wo 0 = Sunday :

%Vor%

Rails 'ActiveSupport hat viele nützliche Methoden als Teil von Date, DateTime und Zeitunterstützung. Es ist einfach, sie zu verwenden, und es ist einfach, das zu wählen, was Sie wollen, wenn Sie sich dazu entscheiden, sie dem normalen Ruby-Code hinzuzufügen.

    
the Tin Man 02.05.2013, 01:23
quelle
1
%Vor%

Wenn es in anderen Formaten sein kann, aber immer der einzige Teil mit einem ":" und zwei Ziffern auf jeder Seite, können Sie

verwenden %Vor%

Und für den Tag, etwas ähnliches

%Vor%     
fotanus 02.05.2013 01:14
quelle

Tags und Links