Neuigkeiten:

still alive...

Hauptmenü

Datum und Wochentag

Begonnen von heikomi, 27. April 2005, 17:43:05

Vorheriges Thema - Nächstes Thema

heikomi

Wie kann man ein Wochentag eines Datums berechnen?
Wollt es mit einer function() machen, funzt aber nicht:
 


function wochentag() {
 $T[1]=\'Mo\';  $T[2]=\'Di\';  $T[3]=\'Mi\';  $T[4]=\'Do\';  $T[5]=\'Fr\';  $T[6]=\'Sa\';  $T[7]=\'So\';
 $jahr = $datum_j
 while($jahr  ...
   ...
 };
 
 if($jahr==1969 or $jahr==1975 or $jahr==1986){
   $m[1]=3;   $m[2]=6;   $m[3]=6;   $m[4]=2;
   $m[5]=4;   $m[6]=7;   $m[7]=2;   $m[8]=5;
   $m[9]=1;   $m[10]=3;  $m[11]=6;  $m[12]=1;
 };
...
...
...
...
 $tag=$M[$datum_m]-1;
 for($i=1;$i7){$tag=1};
 };
 $wotag==$t[$tag];
}; #End Function


dumme Fragen gibt\'s nicht

...

Mach dir einfach einen timestamp mit mktime() vom gewünschten Datum und mach dann einfach:
date(\"l\", mktime(0,0,0,$year, $month, $day));
Dann gibt er dir den Wochentag auf Englisch wieder. Kannst das ja auch in eine Funktion packen.
 



 
Habe jetzt nur bis Montag gemacht...musst das halt erweitern!

heikomi

in meiner Function hab ich ein DUMMEN Fehler drin (ein Semi fehlt am ende der 4. Zeile).
Stibie, ich werd das mal testen, aber dennoch versteh ich nicht, wie man eine selbstgebastelte Fuinction aufruft?


dumme Fragen gibt\'s nicht

mahe

So wie eine von PHP /uploads/emoticons/icon_e_wink.gif.3167d127940f44558fbf1ccd9b6d60a9.gif\" alt=\";-)\" />

http://blog.mahe.at\" rel=\"external nofollow\">http://blog.mahe.at/wp-content/uploads/2007/06/88x31_1.jpg\" alt=\"88x31_1.jpg\">


Ja, diese Signatur dient zur Werbung!


Und dass ich meine Posts wiederfinde ...


heikomi

na die Antwort von stibie war nicht schlecht mit mktime, aber was ist wenn das Datum vor dem 01.01.1970 liegt? So und meine Funktion haut irgentwo nich hin.
Alle 28 Jahre sind ja gleich (7*4 Schaltjahre). Also Der 01.01.1900 hat den gleichen Wochentag wie der 01.01.1928 !
Hier mal die Function:


function wochentag($datum_t,$datum_m,$datum_j){
 $wt[1]=\'Mo\';  $wt[2]=\'Di\';  $wt[3]=\'Mi\';  
 $wt[4]=\'Do\';  $wt[5]=\'Fr\';  $wt[6]=\'Sa\';  
 $wt[7]=\'So\';
 $jahr = $datum_j;
 while($jahr  1996) {$jahr=$jahr - 28;};
 if($jahr=1969 or $jahr=1975 or $jahr=1986){
   $m[1]=3;   $m[2]=6;   $m[3]=6;   $m[4]=2;   $m[5]=4;   $m[6]=7;
   $m[7]=2;   $m[8]=5;   $m[9]=1;   $m[10]=3;  $m[11]=6;  $m[12]=1;
 };
 if($jahr=1970 or $jahr=1981 or $jahr=1987){
   $m[1]=4;   $m[2]=7;   $m[3]=7;   $m[4]=3;   $m[5]=5;   $m[6]=1;
   $m[7]=3;   $m[8]=6;   $m[9]=2;   $m[10]=4;  $m[11]=7;  $m[12]=2;
 };
 if($jahr=1971 or $jahr=1982 or $jahr=1993){
   ...
 };
 if($jahr=1972){
   ...
 };
 
 $tag=$m[$datum_m];
 for($i=0;$i7){$tag=1;};
 };
 $wotag=$wt[$tag];    //hier ist der Wochentag (2stellig, Mo = Montag)
};
 
// zum Test mal Funktion aufrufen:  (der 12.10.1969 war ein Sonntag)
$datum_t=\'12\'; $datum_m=\'10\'; $datum_j=\'1969\';     //12.10.1969 war gewiss ein Sonntag
 
wochentag($datum_t,$datum_m,$datum_j);      // Funktionsaufruf ???
echo \"Der \".$datum_t.\".\".$datum_m.\".\".$datum_j.\" war ein \".$wotag.\"\";

 
Als Ausgabe erhalt ich aber nur: Der 12.10.1969 war ein
Wo ist der Fehler oder besser was mach ich falsch??


dumme Fragen gibt\'s nicht

...

Wenn du Daten vor dem 1970 haben willst, musst du mal bei Google nach mathematischen Formeln gucken, ich glaube es gibt da so einen Weg, wie man das errechnen kann...ich hab da mal was in einem Kalender gesehen...War so eine Tabelle mit zahlen und die musste man ganz seltsam multiplizieren etc. :gaga:
Die Funktion rufst du so auf:



all your base are belong to us / Discord