Autor Thema: TimeStamp  (Gelesen 8494 mal)

thetrue

  • Beiträge: 216
    • Profil anzeigen
    • http://www.the-true.net
Gespeichert
« am: 05. August 2006, 22:19 »
moin,

ich dachte mir, dass ich Unix-Timestamp als zeit in meinem FS verwende...
nun ist das Problem da, ich weiß nicht wie ich von Timestamp das Datum in d.m.Y h.i.s berechne ....

weiß einer von euch wie das geht???

achja und wie geht den auch umgekehrt?
thetrue way is my way

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #1 am: 05. August 2006, 22:33 »
hi,

Du dividierst zuerst den Timestamp durch (365 * 24 * 60 * 60) [ein jahr in sekunden], addierst das zu 1970 dazu, dann hast du das Jahr des timestamps. Der Rest dieser Division sind die verbleibenden sekunden die du anschließend in Tage umrechnest. Mit ein paar ifs findest du dannRden Monat raus und den genauen Tag des Monats. Danach den rest von der Umrechnung in Tage hernehmen und in Stunden umrechnen. Wieder den Rest in minuten umrechnen. Der letzte Rest sind dann wohl die Sekunden.

Das Schaltjahr und die Schaltsekunden musst du extra noch einbauen, aber das ergibt sich ja dann.

Umgekehrt: Viel multiplizieren, ein paar ifs

Du hättest es auch durch selbst nachdenken lösen können :wink:
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

thetrue

  • Beiträge: 216
    • Profil anzeigen
    • http://www.the-true.net
Gespeichert
« Antwort #2 am: 05. August 2006, 22:37 »
öhm, das ist nix neues ^^

doch die ifs ... hmm
thetrue way is my way

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #3 am: 05. August 2006, 22:45 »
Was hättest du erwartet? Nen C++ Sourcecode der alle Features ausnutzt? Also Templates, multiple inheritance, function & operator overloading, runtime-typeinformation, exceptions? Evtl. noch mit dem configscript und nem Makefile?

Wie gesagt:
Zitat von: bluecode
Du hättest es auch durch selbst nachdenken lösen können :wink:


btw. hat nix mit lowlevel zu tun => @mod, bitte verschieben
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

Termite

  • Beiträge: 239
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 06. August 2006, 10:21 »
Moin

aber bitte die Schaltjahre nicht unterschlagen. Die sekunden kann man vergessen, die werden soweit ich weis nicht berücksichtigt.

und was alles ein schaltjahr ist sollte ja bekant sein oder? 4 / 100 / 400

gruss

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 06. August 2006, 10:34 »
Jedes 100. Jahr ist KEIN Schaltjahr....dafür wieder jedes Vierhundertste.

Coffee

  • Beiträge: 470
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 06. August 2006, 10:49 »
Zitat von: nooooooooos
Jedes 100. Jahr ist KEIN Schaltjahr....dafür wieder jedes Vierhundertste.


doch jedes. 4. und 100 ist dann das 25. schaltjahr oder nicht....

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 06. August 2006, 10:58 »
Oh mann.....Dann halt eben:
Wenn ein Jahr zwar durch 4 aber auch durch 100 teilbar ist, ist es trotzdem kein Schaltjahr.
Ist es aber durch 400 teilbar ist es wieder eins.

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #8 am: 06. August 2006, 11:16 »
Und wann begann das erste Schaltjahr? ^^

bitmaster
In the Future everyone will need OS-64!!!

scales of justice

  • Beiträge: 228
    • Profil anzeigen
Gespeichert
« Antwort #9 am: 06. August 2006, 11:20 »
aufjedenfall war 2004 ein Schaltjahr,
das weis ich noch, weil 2000 eben keins war, obwohl eigentlich eins hätte sein müssen,
aber das war ja eins von den hundertsten

also brauch man das nur noch auf 1970 zurückrechnen

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #10 am: 06. August 2006, 12:01 »
Doch 2000 war eins!!!!!
2000 MOD 400 = 0

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #11 am: 06. August 2006, 12:03 »
Die Schaltjahre wurden mit dem Gregorianischem Kalender um 1582 eingeführt.

bbl

  • Beiträge: 13
    • Profil anzeigen
Gespeichert
« Antwort #12 am: 07. August 2006, 18:11 »
Vielleicht muss man sogar noch Schaltsekunden berücksichtigen, weiß aber nicht ob das irgendein OS macht.

JensFZ

  • Beiträge: 96
    • Profil anzeigen
Gespeichert
« Antwort #13 am: 08. August 2006, 08:41 »
Also Jungs. Folgendes ist bei Wikipedia nachzulesen:

Zitat
Die Schaltregeln [Bearbeiten]

    * Nach der grundsätzlich weiterhin gültigen Julianischen Schaltregel weisen Jahre, deren Zahlen durch 4 dividiert natürliche Zahlen ergeben, im Februar einen 29. Tag ("Schalttag") auf und umfassen dadurch als Schaltjahre 366 Tage.

    * Die Gregorianische Schaltregel bestimmt hiervon eine Ausnahme: Keine Schaltjahre sind diejenigen Säkular-Jahre (Jahre, deren Zahl am Ende zwei Nullen aufweist), deren Zahl durch 400 dividiert keine natürliche Zahl ergibt. (Deshalb waren die Jahre 1700, 1800 und 1900 keine Schaltjahre, und auch die Jahre 2100, 2200 und 2300 werden keine Schaltjahre sein.)

oder:

    * Ist die Jahreszahl durch 4 teilbar, aber nicht durch 100, dann ist es ein Schaltjahr mit 366 Tagen. Beispiele: 1980, 1972, 1720.
    * Ist die Jahreszahl durch 100 teilbar, aber nicht durch 400, dann ist das Jahr ein gewöhnliches Gemeinjahr und hat nur 365 Tage, z. B. in den Jahren 1700, 1800 und 1900 oder ferner 2100.
    * Ist die Jahreszahl durch 400 teilbar, ist das Jahr ein Schaltjahr. Die Jahre 1600 und 2000 waren – in Übereinstimmung mit der Julianischen Schaltregel – Schaltjahre zu 366 Tagen.

oder

einfach zu merkende Regel:

    * Ein Schaltjahr ist alle vier Jahre (1992 und 1996 waren z.B. Schaltjahre)
    * alle hundert Jahre nicht (1700 und 1800 waren keine Schaltjahre)
    * und alle vierhundert Jahre doch (2000 war doch Schaltjahr)


wem das nicht reicht der kann sich das nochmal direkt durchlesen unter http://de.wikipedia.org/wiki/Schaltjahr


Und nun zu den eigentlichen Problem. Den einzigen Beispielcode den ich auf die Schnelle gefunden habe ist in PHP geschrieben aber villeicht hilft es dir ja weiter.

<?php
 
include '../includes/Head.inc';

 
/* Umrechnungsfaktoren */
 
$umminute 60;
 
$umstunde 3600;
 
$umtag 86400;
 
$umwoche 604800;
 
$umjahr 31556952/* Laut Wikipedia hat das durchschnittliche Jahr 365 Tage, 5 Stunden, 49 Minuten und 12 Sekunden. */
 
$ummonat $umjahr 12;

 
/* time&#40;&#41; in Minuten, Stunden, Tagen, Wochen, Monaten und Jahren */
 
$minuten time&#40;&#41; / $umminute;
 
$stunden time&#40;&#41; / $umstunde;
 
$tage time&#40;&#41; / $umtag;
 
$wochen time&#40;&#41; / $umwoche;
 
$monate time&#40;&#41; / $ummonat;
 
$jahre time&#40;&#41; / $umjahr;

 
echo "<table>";
 echo 
"<tr><td>time&#40;&#41;&#58;</td><td>" time&#40;&#41; . "</td></tr>";
 
echo "<tr><td>time&#40;&#41; in Minuten&#58;</td><td>" $minuten "</td></tr>";
 echo 
"<tr><td>time&#40;&#41; in Stunden&#58;</td><td>" $stunden "</td></tr>";
 echo 
"<tr><td>time&#40;&#41; in Tagen&#58;</td><td>" $tage "</td></tr>";
 echo 
"<tr><td>time&#40;&#41; in Wochen&#58;</td><td>" $wochen "</td></tr>";
 echo 
"<tr><td>time&#40;&#41; in Monaten&#58;</td><td>" $monate "</td></tr>";
 echo 
"<tr><td>time&#40;&#41; in Jahren&#58;</td><td>" $jahre "</td></tr>";
 echo 
"</table>";

 
/*
   Seit dem 01.01.1970 sind ... vergangen - Versuch 1
 */
 
$bla floor&#40;$jahre&#41; . " Jahre, ";
 
$bla $bla floor&#40;&#40;time&#40;&#41; % $umjahr&#41;/$ummonat&#41; . " Monate, ";
 
$bla $bla floor&#40;&#40;&#40;time&#40;&#41; % $umjahr&#41;%$ummonat&#41;/$umwoche&#41; . " Wochen, ";
 
$bla $bla floor&#40;&#40;&#40;&#40;time&#40;&#41; % $umjahr&#41;%$ummonat&#41;%$umwoche&#41;/$umtag&#41; . " Tage, ";
 
$bla $bla floor&#40;&#40;&#40;&#40;&#40;time&#40;&#41; % $umjahr&#41;%$ummonat&#41;%$umwoche&#41;%$umtag&#41;/$umstunde&#41; . " Stunden, ";
 
$bla $bla floor&#40;&#40;&#40;&#40;&#40;&#40;time&#40;&#41; % $umjahr&#41;%$ummonat&#41;%$umwoche&#41;%$umtag&#41;%$umstunde&#41;/$umminute&#41; . " Minuten und ";
 
$bla $bla floor&#40;&#40;&#40;&#40;&#40;&#40;&#40;time&#40;&#41; % $umjahr&#41;%$ummonat&#41;%$umwoche&#41;%$umtag&#41;%$umstunde&#41;%$umminute&#41;&#41; . " Sekunden <br><br>";
 
echo $bla;

 
/*
   Seit dem 01.01.1970 sind ... vergangen - Versuch 2
 */
 
$monate2 floor&#40;&#40;time&#40;&#41; - &#40;floor&#40;$jahre&#41;*$umjahr&#41;&#41;/$ummonat&#41;;
 
$wochen2 floor&#40;&#40;time&#40;&#41; - &#40;floor&#40;$jahre&#41;*$umjahr&#41; - &#40;$monate2*$ummonat&#41;&#41;/$umwoche&#41;;
 
$tage2 floor&#40;&#40;time&#40;&#41; - &#40;floor&#40;$jahre&#41;*$umjahr&#41; - &#40;$monate2*$ummonat&#41; - &#40;$wochen2*$umwoche&#41;&#41;/$umtag&#41;;
 
$stunden2 floor&#40;&#40;time&#40;&#41; - &#40;floor&#40;$jahre&#41;*$umjahr&#41; - &#40;$monate2*$ummonat&#41; - &#40;$wochen2*$umwoche&#41; - &#40;$tage2*$umtag&#41;&#41;/$umstunde&#41;;
 
$minuten2 floor&#40;&#40;time&#40;&#41; - &#40;floor&#40;$jahre&#41;*$umjahr&#41; - &#40;$monate2*$ummonat&#41; - &#40;$wochen2*$umwoche&#41; - &#40;$tage2*$umtag&#41; - &#40;$stunden2*$umstunde&#41;&#41;/$umminute&#41;;
 
$sekunden2 floor&#40;&#40;time&#40;&#41; - &#40;floor&#40;$jahre&#41;*$umjahr&#41; - &#40;$monate2*$ummonat&#41; - &#40;$wochen2*$umwoche&#41; - &#40;$tage2*$umtag&#41; - &#40;$stunden2*$umstunde&#41; - &#40;$minuten2*$umminute&#41;&#41;&#41;;

 
$bla2 floor&#40;$jahre&#41; . " Jahre, ";
 
$bla2 $bla2 $monate2 " Monate, ";
 
$bla2 $bla2 $wochen2 " Wochen, ";
 
$bla2 $bla2 $tage2 " Tage, ";
 
$bla2 $bla2 $stunden2 " Stunden, ";
 
$bla2 $bla2 $minuten2 " Minuten und ";
 
$bla2 $bla2 $sekunden2 " Sekunden <br><br>";

 echo 
$bla2;

 include 
'../includes/Foot.htm';
?>
 

 

Einloggen