Brauche hilfe bei einer Wochentagefunktion

Maik20

Erfahrenes Mitglied
Hallo,

ich suche eine Funktion die mir die Anzahl der "Montage" vom z.B. 04.01.2008 - 28.05.2008 ermittelt. Da es eine solche Funktion nicht in php ist überlege ich mir gerade Ansätze wie ich das ganze selbst realisieren kann.

Code:
function countWeekdays($day, $startDate, $stopDate){
....
}

Hat dazu vielleicht jemand eine Idee?
 
Oh,
ich hätte da nur ne ziemlich "bescheeidene" Idee..

Ne schleife in der du einfach Tag für Tag hoch zählst bis zum ENDE DATUM... und dabei abfragst ob der jeweilige Wochentag "date("w")" == 1 (Montag) ist... wenn ja...
ein Zähler hochzählen...

und am Ende kommt die Zahl der Montage raus die von START bis ENDE vorkommen...

Ist aber glaub ich ne ziemlich Primitive art dies zu lösen... habe keine Ahnung ob es da eine Funktion für gibt...

Ansonste... mein Post einfach ignorieren ;)
 
Bis Gumbo was besseres Postet:

PHP:
$start = strtotime( '04.01.2008' );
$ende = strtotime( '28.04.2008' );

$tage = floor( ( $ende - $start ) / 86400 ); // Anzahl der Tage

$anzahlMontage = '';
for( $i = 0; $i < 7; $i++ ) // Den ersten Montag finden, dauert maximal 7 durchläufe...
{
    if( date( 'D', $start + ( $i * 86400 ) ) == 'Mon' ) // Wenn wir den Montag gefunden haben:
    {
        // Anzahl der Tage - die Tage bis zum ersten Montag durch 7... + 1, da wir den ersten Montag ja auch mitrechnen müssen
        $anzahlMontage = floor( ( $tage - $i ) / 7 ) + 1; 
        break;
    }
}
echo $anzahlMontage;
 
Es gibt eine Funktion...es lebe das Informatik Studium:

Code:
Wt = (T + floor(((m+1)*26)/10) + J + floor(J/4) + floor(Jh/4) - 2 * Jh) mod 7

T = Tag (zweistellig)
J = letzten beiden Ziffern des Jahres bei 1978 also 78
Jh = die beiden führenden Ziffern des Jahres bei 1978 also 19

Beim Monat wird es etwas komplizierter denn:

M den Monat, wobei den Monaten März bis Dezember in üblicher Weise die Zahlen
3 bis 12 zugeordnet werden. Die Monate Januar und Februar werden als 13.
bzw. 14. Monat des Vorjahres interpretiert, was zur Folge hat, dass man für
diese Monate auch den Wert für J und ggf. den Wert für Jh entsprechend anpassen
muss.
Für das Datum 15.01.1984 ist daher Jh = 19, J = 83 und M = 13.
Für das Datum 27.02.1800 ist Jh = 17, J = 99 und M = 14.

Du erhälst dann eine Zahl von 0 bis 6 wobei 0 der Samstag ist, 1 der Sontag usw.
 
Zuletzt bearbeitet:
Zurück