Datumssätze auffüllen

10/09/2008 - 14:03 von Ekki Plicht | Report spam
Gegeben sei ein Hash mit Datensàtzen wie

2008-09-11 39
2008-09-10 40
2008-09-08 35
2008-09-07 35
2008-09-05 28

Gibt es ein Modul oder anderes einfaches Verfahren das die fehlenden Daten
im Zeitbereich findet und mit Nullwerten auffüllt?
Hinterher soll 's also so aussehen:

2008-09-11 39
2008-09-10 40
2008-09-09 0
2008-09-08 35
2008-09-07 35
2008-09-06 0
2008-09-05 28

Der gegebene Zeitbereich kann dabei natürlich auch Monats oder
Jahresgrenzen überschreiten.

Manuell bekomme ich das schon hin, ich bin aber faul wie (fast) jeder
Programmierer und suche sowas schon vorgefertigt. Bei Google und cpan habe
ich schon geguckt.

Ziel ist es die Daten GD zum Fraß vorzuwerfen, damit 'ne Graphik draus
wird. Und da stören so Lücken natürlich in der Darstellung.

Danke,
Ekki
 

Lesen sie die antworten

#1 Moritz Lenz
10/09/2008 - 14:39 | Warnen spam
Ekki Plicht wrote:
Gegeben sei ein Hash mit Datensàtzen wie

2008-09-11 39
2008-09-10 40
2008-09-08 35
2008-09-07 35
2008-09-05 28

Gibt es ein Modul oder anderes einfaches Verfahren das die fehlenden Daten
im Zeitbereich findet und mit Nullwerten auffüllt?
Hinterher soll 's also so aussehen:

2008-09-11 39
2008-09-10 40
2008-09-09 0
2008-09-08 35
2008-09-07 35
2008-09-06 0
2008-09-05 28

Der gegebene Zeitbereich kann dabei natürlich auch Monats oder
Jahresgrenzen überschreiten.

Manuell bekomme ich das schon hin, ich bin aber faul wie (fast) jeder
Programmierer und suche sowas schon vorgefertigt. Bei Google und cpan habe
ich schon geguckt.



Ich glaube nicht, dass sich dafür ein extra Modul lohnt, nachdem das
jetzt wirklich nicht so schwer ist:

use Date::Simple qw(date);

sub fill_hash_with_dates {
my ($hash, $start, $stop) = @_;
for (my $d = date($start); $d <= $stop; $d++) {
$hash->{$d} ||= 0;
}
}

(Ungetestet, sollte aber so ungefàhr gehen. Vielleicht geht mit
Date::Simple sogar 'for (date($start)..date($stop))', hab ich aber noch
nie benutzt).

Ich glaube, dass das ganze als Modul schwieriger wàre an mögliche
Datenstrukturen anzupassen die der User reinschmeissen könnte, als die
eigentliche Arbeit zu machen.

Moritz

Moritz Lenz
http://perl-6.de/ http://moritz.faui2k3.org/

Ähnliche fragen