Thread Liste in Tabellenformat umwandeln
(19 answers)
Opened by Rambo at 2016-06-24 15:19
Ich weiss nicht, ob es nun verstanden habe.
Wandle Den Code-Block Deiner Schleife in eine Funktion um: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 sub readable_wintime { my $wintime = shift; my $unix_epoch = win_to_unix_epoch($wintime); my ($year, $month, $day, $hour, $minute, $second) = (localtime $unix_epoch)[5,4,3,2,1,0]; $year += 1900; $month += 1; ($month, $day, $hour, $minute, $second) = map { sprintf '%02d', $_ } $month, $day, $hour, $minute, $second; my $LL= join('-', $day, $month, $year) . ' ' . join(':', $hour, $minute, $second); return $LL; } sub win_to_unix_epoch { # Actually hundreths of nanoseconds at this point... my $nanoseconds = shift; # Get seconds my $seconds = $nanoseconds / 10_000_000; # This magic number is the difference between Unix and Windows epoch. my $unix_epoch = $seconds - 11644473600; # Return the Unix epoch for use with localtime(). return $unix_epoch; } Dann rufe diese neue Routine auf, um eben $LastLogin und $PasswortSet zu verarbeiten. Nehmen wir an, dass beide Variablen die Windows-Zeit enthalten: Code: (dl
)
1 $LastLogin = readable_wintime($LastLogin); Wenn Du Datum und Uhrzeit jeweils getrennt haben willst, dann z.B. so: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 sub readable_wintime { my $wintime = shift; my $unix_epoch = win_to_unix_epoch($wintime); my ($year, $month, $day, $hour, $minute, $second) = (localtime $unix_epoch)[5,4,3,2,1,0]; $year += 1900; $month += 1; ($month, $day, $hour, $minute, $second) = map { sprintf '%02d', $_ } $month, $day, $hour, $minute, $second; my $date = join('-', $day, $month, $year); my $time = join(':', $hour, $minute, $second); return $date, $time; } Aufruf: Code: (dl
)
1 my ( $login_date, $login_time ) = readable_wintime($LastLogin); meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen! |