tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von saftmeister
  • 1 Beitrag von Yaslaw
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
790
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Alexander Ruff Alexander Ruff ist offline Mitglied Bronze
    Registriert seit
    Aug 2009
    Beiträge
    25
    Moin Moin,

    ich habe eine kurze frage! ich bin auf der suche nach einer Möglcihkeit die Wochentage zu berechnen.

    Folgende Problemstellung:

    Ich muss einen Datumsbereich angeben: bsp. 01.01.2010 bis 31.07.2010

    Ich bin auf der suche nach einen Script das mir folgendes berechnet:

    Anzahl an Wochentagen: Montag 15 x, Dientag 16 x, Mittwoch 10x u.s.w

    Bin für jeden hinweiß dankbar !

    Alex
     

  2. #2
    Avatar von Chumper
    Chumper Chumper ist offline Eichhörnchen
    Registriert seit
    Mar 2006
    Ort
    Vancouver
    Beiträge
    440
    Wie kann es in diesem Zeitraum den Montag 15x und den Mittwoch nur 10x geben?
    Wenn sieben Tage um sind, dann hast du eine Woche, also addierst du zu jedem Wochentag einen dazu.
    Du musst nur den Starttag rausfinden und mit dem Endtag abgleichen.
     
    mfg Nils

    Problem gelöst?
    Dann bitte das Thema als erledigt anhaken
    und die Antwort bewerten, die weitergeholfen hat.


    Danke!

  3. #3
    Avatar von saftmeister
    saftmeister saftmeister ist gerade online Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.521
    Man könnte es auch ein Script erledigen lassen.

    PHP-Code:
    <?php
    $s 
    "01.01.2010";
    $e "31.07.2010";

    $sd strtotime($s);
    $ed strtotime($e);

    $weekdays = array();

    for(
    $i $sd $i $ed$i+=86400)
    {
        
    $weekday date("D"$i);
        if(!isset(
    $weekdays$weekday ]))
          
    $weekdays$weekday ] = 1;
        else
          
    $weekdays$weekday ] ++;
    }

    echo 
    "<pre>";
    print_r($weekdays);
    echo 
    "</pre>";
    ?>
    Zugegeben, ist etwas "unperformant" funktioniert aber
    Alexander Ruff bedankt sich. 
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  4. #4
    Alexander Ruff Alexander Ruff ist offline Mitglied Bronze
    Registriert seit
    Aug 2009
    Beiträge
    25
    Moin Moin Saftmeister,

    Genau das ist es was ich suche Vielen Dank !

    Jetzt wäre es noch die Absolute krönung wenn Du mir erzählen könntest wie ich die ergebnisse in eine Variable bekomme ?

    Ich nehme mal an das Array in Variablen schreiben, oder ?

    Aber so weit schon einmal sehr vielen Dank !

    Alex
     

  5. #5
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    $weekdays ist doch schon eine Variable.
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  6. #6
    Alexander Ruff Alexander Ruff ist offline Mitglied Bronze
    Registriert seit
    Aug 2009
    Beiträge
    25
    KLar ist $Weekdays eine Variable, aber ich brauche die einzelnen Tage in einer Variable !
     

  7. #7
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Sorry, aber ich versteh nicht wie du das meinst.

    Die Einzelnen Tage in einer Variable oder pro Tag eine Variable oder wie?
    Mach mal ein Beispiel wie das Resultat aussehen soll. Dann finden wir heraus wie du dahin kommst.
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  8. #8
    Alexander Ruff Alexander Ruff ist offline Mitglied Bronze
    Registriert seit
    Aug 2009
    Beiträge
    25
    Genau das meine ich !

    Jeden Tag der Woche in einer einzelnen Variable !

    Aber müsste das nicht gehen mit

    PHP-Code:
    $mon $weekdays[3]; 
     

  9. #9
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    das geht nicht, da der Index keine Zahl sondern die englische Kurzform des Wochentages ist.

    Aber hier sind 2 weitere Lösungen (wobei ich die erste hübsch finde

    PHP-Code:
    <?php
    $date 
    $start strtotime('01.01.2010');
    $end strtotime('31.03.2010');

    //Wochentage zählen
    while($date $end){
        
    $weekdays[date('l'$date)]++;   
        
    $date $date 86400;
    }

    //Key auf kleinschreibung wandeln und als Variablennamen brauchen
    extract(array_change_key_case($weekdaysCASE_LOWER));

    var_dump($monday$tuesday$wednesday$thursday$friday$saturday$sunday);

    //oder so:

    //Zurücksetzen
    $date $start;
    $weekdays NULL;
    //Wochentage zählen
    while($date $end){
        
    $weekdays[strftime('%w'$date)]++;   
        
    $date $date 86400;
    }
    //Weekdays nach Index sortieren
    ksort($weekdays);
    //Indexe benamsen
    $names = array(=> 'sonntag'=> 'montag'=>'dienstag'=> 'mittwoch'=> 'donnerstag'=> 'freitag'=> 'samstag');
    //Bennante Indexe die Werte zuordnen und als Varibalen ausgeben
    extract(array_combine($names$weekdays));
    var_dump($montag$dienstag$mittwoch$donnerstag$freitag$samstag$sonntag);

    ?>
    Alexander Ruff bedankt sich. 
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  10. #10
    Alexander Ruff Alexander Ruff ist offline Mitglied Bronze
    Registriert seit
    Aug 2009
    Beiträge
    25
    Klasse genau das ist es was ich gesucht habe !

    Vielen Dank !
     

Ähnliche Themen

  1. date() und Wochentage auf Deutsch
    Von HeinerK im Forum PHP
    Antworten: 5
    Letzter Beitrag: 09.06.11, 19:22
  2. Wochentage und Zeiträume in Datenbank ablegen
    Von TutorialKing im Forum Relationale Datenbanksysteme
    Antworten: 9
    Letzter Beitrag: 04.07.08, 11:58
  3. kann man irgendwie die Wochentage errechnen
    Von son gohan im Forum Coders Talk
    Antworten: 3
    Letzter Beitrag: 15.04.08, 23:15
  4. Antworten: 5
    Letzter Beitrag: 20.06.06, 14:36
  5. datum aller Wochentage
    Von pb_sergio im Forum PHP
    Antworten: 7
    Letzter Beitrag: 10.06.05, 12:52