Schrift
[thread]6291[/thread]

Datumsformat JJJJ-MM-TT HH:MM:SS sortieren: mal wieder was zum sortieren



<< |< 1 2 >| >> 20 Einträge, 2 Seiten
mordur
 2004-05-25 15:28
#82741 #82741
User since
2003-09-25
182 Artikel
BenutzerIn
[Homepage] [default_avatar]
moins,

ich habe ein Array da stehen Datumsangaben im Format
'JJJJ-MM-TT HH:MM:SS' drin. Jetzt soll das Array so sortiert werden, das das Datum, welches am jüngsten ist vorn steht.
Die Zeitangaben sind da auch zu berücksichtigen.
Hat jemand da eine Lösung?
devil_86
 2004-05-25 15:37
#82742 #82742
User since
2004-05-25
12 Artikel
BenutzerIn
[default_avatar]
sub sortdatum {
if($a < $b) { return -1; }
elsif($a == $b) { return 0; }
else { return 1; }
}

@datum = sort(sortdatum @datum);\n\n

<!--EDIT|devil_86|1085485089-->
mordur
 2004-05-25 15:50
#82743 #82743
User since
2003-09-25
182 Artikel
BenutzerIn
[Homepage] [default_avatar]
Argument "2004-05-12 15:23:12" isnt numeric at...."

das geht leider nicht so einfach
renee
 2004-05-25 15:52
#82744 #82744
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
bau es einfach als Zahlenkette auf, dann kannst Du ganz normal nach numerischen Werten sortieren...

also 200405231535...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
devil_86
 2004-05-25 16:01
#82745 #82745
User since
2004-05-25
12 Artikel
BenutzerIn
[default_avatar]
[quote=mordur,25.05.2004, 13:50]Argument "2004-05-12 15:23:12" isnt numeric at...."

das geht leider nicht so einfach[/quote]
ich hatte ein script geschrieben in dem ich auch alphanummerische array values sortieren muss und es hat so funktioniert. aber sort alleine ohne die funktion sortdate würde es nicht machen.
mordur
 2004-05-25 17:01
#82746 #82746
User since
2003-09-25
182 Artikel
BenutzerIn
[Homepage] [default_avatar]
mit der Zahlenkette gehts
coax
 2004-05-25 17:09
#82747 #82747
User since
2003-08-11
457 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
my @data = ('2004-05-14 13:44:13',
           '2003-07-23 09:07:12',
           '2004-06-17 20:15:00',
           '2003-07-23 10:07:12',
           '2004-06-17 23:15:00',
           '2001-07-23 09:07:12',
           '2005-06-17 20:15:00',
           '2004-06-17 23:15:13',
           );
     
@sorted =
map  { $_->[0] }
sort {
       $a->[1] <=> $b->[1] ||
       $a->[2] <=> $b->[2] ||
       $a->[3] <=> $b->[3] ||
       $a->[4] <=> $b->[4] ||
       $a->[5] <=> $b->[5] ||
       $a->[6] <=> $b->[6]
}
map {[$_, split(/[ :-]/, $_)]} @data;

print "$_\n" for @sorted;


Schau dir dazu auch mal die Sortier-Beispiele von Strat an: Perl Tipps & Tricks: Erweiterte Sortiertung

Grusz Christian.
,,Das perlt aber heute wieder...'' -- Dittsche
Crian
 2004-05-25 17:56
#82748 #82748
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Code: (dl )
my @sort = sort {$a cmp $b} @array;
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Taulmarill
 2004-05-25 18:09
#82749 #82749
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
@coax: der codeschnipsel ist nicht dein ernst, oder? :rock:

@Crain: letztendlich noch eine elegante lösung
wenn alle datumsfelder mit führender null arbeiten sollte das die schnellste/einfachste nöglichkeit sein.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
coax
 2004-05-25 20:03
#82750 #82750
User since
2003-08-11
457 Artikel
BenutzerIn
[default_avatar]
[quote=Taulmarill,25.05.2004, 16:09]@coax: der codeschnipsel ist nicht dein ernst, oder? :rock:[/quote]
wieso ? gibt's Probleme ? Check ich was nicht ???

Grusz Christian.
,,Das perlt aber heute wieder...'' -- Dittsche
<< |< 1 2 >| >> 20 Einträge, 2 Seiten



View all threads created 2004-05-25 15:28.