Thread Liste in Tabellenformat umwandeln (19 answers)
Opened by Rambo at 2016-06-24 15:19

Linuxer
 2016-07-18 13:23
#185100 #185100
User since
2006-01-27
3890 Artikel
HausmeisterIn

user image
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
2
$LastLogin   = readable_wintime($LastLogin);
$PasswortSet = readable_wintime($PasswortSet);


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
2
my ( $login_date, $login_time ) = readable_wintime($LastLogin);
my ( $pwset_date, $pwset_time ) = readable_wintime($PasswortSet);
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!

View full thread Liste in Tabellenformat umwandeln