Hallo,
ich suche ein Pondon in Perl zu einer Funktion in VBS:
TimeStamp=CDbl(CDate(DateTime))
Für heute würde da die Nummer 44866 herauskommen (Double-Anteil einer Float)
Die Nummer steht für einen Tag
Mit den Mitteln von Perl finde ich da keinen Ansatz, der in die Nähe kommt. Paar Ansätze:
my $title = $elements[1];
my $datum = $elements[2];
my $uhrzeit = substr($elements[3], 5);
my $sender = $elements[4];
my ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime(str2time($datum));
$month += 1;
$year += 1900;
my $date1 = str2time($datum);
my $date2 = str2time('1900-01-01');
my $datum_1 = floor( $year*365.24 + $month*30.44 + $mday ); #floor(($date1-$date2)/86400);
#my ($action, $sender, $title, $datum, $uhrzeit, $dauer) = split / /, $betreff;
{Log 1, "Gesplittete Kommandoteile: $title $datum $uhrzeit $sender $datum_1 "};
Weis jemand Rat? Erstmal ohne einen Offset hinzu zu addieren?
sub test{
use DateTime;
sub iso8601_date {
die unless $_[0] =~ m/^(\d\d\d\d)-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)Z$/;
return DateTime->new(year => $1, month => $2, day => $3,
hour => $4, minute => $5, second => $6, time_zone => 'UTC');
}
my $dt1 = iso8601_date('1899-12-30T00:00:00Z');
my $dt2 = iso8601_date('2022-11-01T12:00:00Z');
return $dt2->subtract_datetime_absolute($dt1)->delta_seconds / DAYSECONDS;
}
Super, hat geklappt -> Danke!
(Irgenwie vertauscht diese Kombi: "localtime(str2time($datum))" letztlich die Tag und Monatsvariable in meinem getesteten Codeschnipsel.
Das hatte mich dann immer zu anderem Ergebnis geführt :-\ )