Thomas J.S.: sekunden zu datum algorythmus

Beitrag lesen

Hallo Vedat,

Okay, ich hatte Perl-Kenntnisse vorausgesetzt.

was soll ich dazu sagen? ;-)
ich will nicht programmieren (auch wenn ich das in mancher hinsicht doch tue), sonst mach ich dann plözlich nichts anders als das.

ich verstehe nicht was shift hier tut. ich habe nachgelesen was die funktion 'shift' macht, aber denn sinn verstehe ich hier nicht.

Mit sub beginnen Unterprogramme.

ja, das ist mir klar.

Bei Perl muß man die übergegebenen Werte an die Variable weitergeben ... genau das macht Shift ...

aber shift nicht doch den ersten wert aus einer liste ung gibt ihn dan zurück ... nur welche liste haben wir hier?

Zum Algorithmus selbst:

Wir haben also die Zahl 991950865.
Wir fangen mit bei 1.1.1970 an und zählen die Jahre hoch... (für jedes Jahr 365 * 24 * 60 * 60 bzw. bei Schaltjahren 366 * 24 * 60 * 60)
bis kein Jahr mehr "reinpasst".

da muss du aber schon vorher wissen, welche bzw. wieviele schaltjahre es gab zwsichen 1970 und 'unserem' zeitpunkt, aber woher weisst du das?

----

Erst mal die Jahre hochzählen ...

while ($zaehler<$t) {
#was passiert hier:
$zaehler +=(365 * 24 * 60 * 60);

#hier ruft du dein sub 'sj' aus auf, aber was macht 1970 also ($jahr)? oder ist es einfach 1970x24x60x60 und die zahl dieser multiplikation jagst du durch 'sj' ?
$zaehler += (sj ($jahr) * 24 * 60 * 60);
$jahr++;
}
$jahr--;  #der Algorithmus oben schiesst um ein Jahr über :-)
$zaehler -=(365 * 24 * 60 * 60);
$zaehler -= (sj ($jahr) * 24 * 60 * 60);
----

wo genau passiert das, das hochzählen, das wäre für mich eher eine division als addition (+=) also: $time % (365 * 24 * 60 * 60)
oder bin ich jetzt sehr auf dem holzweg?

Grüße
Thomas

Das Gleiche mit dem Monat...

while ($zaehler<$t) {
$zaehler +=(tim($monat,$jahr) * 24 * 60 * 60);
$monat++;
}
$monat--;
$zaehler -=(tim($monat,$jahr) * 24 * 60 * 60);

Jetzt noch die Tage

while ($zaehler<$t) {
$zaehler +=(24 * 60 * 60);
$tag++;
}
$tag--;

Wenn Du lustig bist, kannst Du noch die Stunden und Minuten auf diese Weise hochzählen....

#Schnell mal kucken, was der gerechnet hat ...
print "$tag.$monat.$jahr";

... also bei mir hat er richtig gerechnet *g*

exit(0);

Danach zählen wir die Monate hoch, bis keine mehr reinpassen ... und dann die Tage ...

Stunden und Minuten hab ich weggelassen, aber das Spielchen kann man da schön weitertreiben...
und was nach den Minuten übrig bleibt, sind die Sekunden.

Wie gesagt, localtime unterstützt aber auch negative Zahlen, die werden in meinem Algorithmus nicht unterstützt ...

Im Prinzip ist er also für den Mülleimer *g*

Ciao, Vedat