date auslesen für eine Simulation

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • date auslesen für eine Simulation

    Ich habe folgenden Code :


    <?php

    srand ((float) microtime() * 10000000);

    function WindGenerator()
    {
    $wind = array (
    'schwach',
    'flau',
    'stark',
    'sehr stark',
    'sehr schwach',
    'stürmig',
    'orkanartig'
    );

    $RandWind = array_rand($wind);
    $WindPrint = $wind[$RandWind];

    $Text = "Der Wind ist gerade $WindPrint.";

    return $Text;

    }

    function TemperaturGenerator()
    {
    $temperatur = array (
    '2',
    '1',
    '0',
    '-1',
    '-2',
    '-3',
    '-4',
    '-5',
    '-6',
    '-7',
    '-8'
    );

    $RandTemperatur = array_rand($temperatur);
    $TemperaturPrint = $temperatur[$RandTemperatur];

    $Text = "Es ist gerade $TemperaturPrint ° Grad.";

    return $Text;

    }

    function Zeit()
    {
    $datum = date("d. M");
    $uhrzeit = date("H:i");

    $Text = "Es ist der $datum, ($uhrzeit).";

    return $Text;
    ?>



    Das ganze soll so eine Art Wettersimulator werden.

    .... was ich jetzt versuchen will ist die ganze Sache noch ein wenig zu verfeinern indem ich ich date("H:i"); auslesen will mit einer if Funktion, also quasi von 12-14 Uhr Array A, von 16-18 Uhr Array B, usw... Gibt es eine Möglichkeit das so hinzubekommen ? Wenn ja wie ? Irgendwie komme ich da nicht auf den richtigen Dreh.

    Schonmal Danke für eure Hilfe
    Grüße
    Andreas

  • #2
    mach doch ein switch über die Stunde und dann ein array_push() in das jeweilige Array
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Original geschrieben von MelloPie
      ....mach doch ein switch über die Stunde....
      Genau das bekomme ich ja irgendwie nicht hin.

      Wenn ich folgendes machen wollte :

      switch ($i) {
      case 0:
      "Stunde" <=10 ;
      break;
      case 1:
      "Stunde" <=15 ;
      break;
      case 2:
      "Stunde" <=23 ;
      break;
      }

      .... was muß ich genau in die case Anweisung schreiben ?
      Grüße
      Andreas

      Kommentar


      • #4
        $i = date("H");

        PHP-Code:
        switch ($i) {
        case < 
        10:
          echo 
        "vormittags";
        break;
        case < 
        15:
           echo 
        "mittags";
        break;
        case < 
        19:
          echo 
        "nachmittags";
        break;
        case <= 
        23:
        default:
          echo 
        "nachts";

        mfg,
        [color=#0080c0]Coragon[/color]

        Kommentar


        • #5
          Ich habe jetzt folgenden Code :

          PHP-Code:
          <?php

          srand 
          ((float) microtime() * 10000000);

          function 
          TemperaturGeneratorWinterMorgens()
                  {
                  
          $temperatur = array (
                                          
          '0',
                                          
          '-1'
                                          
          );

                  
          $RandTemperatur array_rand($temperatur);
                  
          $TemperaturPrint $temperatur[$RandTemperatur];

                  
          $Text "Es ist gerade $TemperaturPrint ° Grad.";

                  return 
          $Text;

                  }

          function 
          TemperaturGeneratorWinterVormittags()
                  {
                  
          $temperatur = array (
                                          
          '1',
                                          
          '2'
                                          
          );

                  
          $RandTemperatur array_rand($temperatur);
                  
          $TemperaturPrint $temperatur[$RandTemperatur];

                  
          $Text "Es ist gerade $TemperaturPrint ° Grad.";

                  return 
          $Text;

                  }

          function 
          TemperaturGeneratorWinterMittags()
                  {
                  
          $temperatur = array (
                                          
          '2',
                                          
          '3'
                                          
          );

                  
          $RandTemperatur array_rand($temperatur);
                  
          $TemperaturPrint $temperatur[$RandTemperatur];

                  
          $Text "Es ist gerade $TemperaturPrint ° Grad.";

                  return 
          $Text;

                  }

          function 
          TemperaturGeneratorWinterNachmittags()
                  {
                  
          $temperatur = array (
                                          
          '1',
                                          
          '2'
                                          
          );

                  
          $RandTemperatur array_rand($temperatur);
                  
          $TemperaturPrint $temperatur[$RandTemperatur];

                  
          $Text "Es ist gerade $TemperaturPrint ° Grad.";

                  return 
          $Text;

                  }

          function 
          TemperaturGeneratorWinterAbends()
                  {
                  
          $temperatur = array (
                                          
          '0',
                                          
          '-1'
                                          
          );

                  
          $RandTemperatur array_rand($temperatur);
                  
          $TemperaturPrint $temperatur[$RandTemperatur];

                  
          $Text "Es ist gerade $TemperaturPrint ° Grad.";

                  return 
          $Text;

                  }

          function 
          TemperaturGeneratorWinterNachts()
                  {
                  
          $temperatur = array (
                                          
          '-2',
                                          
          '-3'
                                          
          );

                  
          $RandTemperatur array_rand($temperatur);
                  
          $TemperaturPrint $temperatur[$RandTemperatur];

                  
          $Text "Es ist gerade $TemperaturPrint ° Grad.";

                  return 
          $Text;

                  }

          function 
          Zeit()
                   {
                   
          $datum date("d. m");
                   
          $uhrzeit date("H:i");

                   
          $Text "Es ist der $datum, ($uhrzeit).";

                   return 
          $Text;

                   }

          $tageszeit date("H");

          switch (
          $tageszeit)
                   {
                   case == 
          || || || 8:
                   
          TemperaturGeneratorWinterMorgens();
                   break;
                   case == 
          || 10 || 11:
                   
          TemperaturGeneratorWinterVormittags();
                   break;
                   case == 
          12 || 13 || 14 || 15:
                   
          TemperaturGeneratorWinterMittags();
                   break;
                   case == 
          16 || 17 || 18 || 19:
                   
          TemperaturGeneratorWinterNachmittags();
                   break;
                   case == 
          20 || 21 || 22 || 23:
                   
          TemperaturGeneratorWinterAbends();
                   break;
                   case == 
          || || || || 4:
                   
          TemperaturGeneratorWinterNachts()
                   break;
                   }

          ?>

          Auf einer der Seite lasse ich dann folgendes auswerfen :

          <?php print $Zeit() ?>
          <?php echo $tageszeit ?>

          ... doch leider passiert nix... kann mir einer den Fehler sagen, weil ich finde ihn nicht.
          Zuletzt geändert von Maratos; 26.01.2003, 18:34.
          Grüße
          Andreas

          Kommentar


          • #6
            wenn du den code formatierst damit ich ihn ohne anstrengen lesen kann, ok .. und verwende [php] tags
            und guter programmierstil ist es wenn dich entscheidest .. echo oder print ..
            mfg,
            [color=#0080c0]Coragon[/color]

            Kommentar


            • #7
              Original geschrieben von Coragon Rivito
              wenn du den code formatierst damit ich ihn ohne anstrengen lesen kann, ok .. und verwende [php] tags
              und guter programmierstil ist es wenn dich entscheidest .. echo oder print ..
              Ok... sorry... habe ihn jetzt mit PHP tags bearbeitet. Mit dem echo und print hast du auch Recht, werde ich mir angewöhnen.
              Grüße
              Andreas

              Kommentar


              • #8
                na da hammas ja schon ..

                $Zeit() .. php versucht die funktion aufzurufen die inder variablen $Zeit steht .. weg mit dem dollarzeichen

                $tageszeit .. gute frage ..
                lässt du das auf der selben seite ausgeben oder eine andere ? übergibst du die variablen richtig ? cookie, session .. ?
                mfg,
                [color=#0080c0]Coragon[/color]

                Kommentar


                • #9
                  Danke schonmal... das $ Zeichen habe ich jetzt weg gelassen allerdings noch immer kein Erfolg.

                  Die Sachen werden auf der selben Seite ausgegeben, da muß ja nichts mehr gesondert übergeben werden, oder ?
                  Grüße
                  Andreas

                  Kommentar


                  • #10
                    Ich habe den Code jetzt wie folgt umgeschrieben :

                    PHP-Code:
                    <?php

                    srand 
                    ((float) microtime() * 10000000);

                    function 
                    TemperaturGeneratorWinterMorgens()
                            {
                            
                    $temperatur = array (
                                                    
                    '0',
                                                    
                    '-1'
                                                    
                    );

                            
                    $RandTemperatur array_rand($temperatur);
                            
                    $TemperaturPrint $temperatur[$RandTemperatur];

                            
                    $Text "Es ist gerade $TemperaturPrint ° Grad.";

                            return 
                    $Text;

                            }

                    function 
                    TemperaturGeneratorWinterVormittags()
                            {
                            
                    $temperatur = array (
                                                    
                    '1',
                                                    
                    '2'
                                                    
                    );

                            
                    $RandTemperatur array_rand($temperatur);
                            
                    $TemperaturPrint $temperatur[$RandTemperatur];

                            
                    $Text "Es ist gerade $TemperaturPrint ° Grad.";

                            return 
                    $Text;

                            }

                    function 
                    TemperaturGeneratorWinterMittags()
                            {
                            
                    $temperatur = array (
                                                    
                    '2',
                                                    
                    '3'
                                                    
                    );

                            
                    $RandTemperatur array_rand($temperatur);
                            
                    $TemperaturPrint $temperatur[$RandTemperatur];

                            
                    $Text "Es ist gerade $TemperaturPrint ° Grad.";

                            return 
                    $Text;

                            }

                    function 
                    TemperaturGeneratorWinterNachmittags()
                            {
                            
                    $temperatur = array (
                                                    
                    '1',
                                                    
                    '2'
                                                    
                    );

                            
                    $RandTemperatur array_rand($temperatur);
                            
                    $TemperaturPrint $temperatur[$RandTemperatur];

                            
                    $Text "Es ist gerade $TemperaturPrint ° Grad.";

                            return 
                    $Text;

                            }

                    function 
                    TemperaturGeneratorWinterAbends()
                            {
                            
                    $temperatur = array (
                                                    
                    '0',
                                                    
                    '-1'
                                                    
                    );

                            
                    $RandTemperatur array_rand($temperatur);
                            
                    $TemperaturPrint $temperatur[$RandTemperatur];

                            
                    $Text "Es ist gerade $TemperaturPrint ° Grad.";

                            return 
                    $Text;

                            }

                    function 
                    TemperaturGeneratorWinterNachts()
                            {
                            
                    $temperatur = array (
                                                    
                    '-2',
                                                    
                    '-3'
                                                    
                    );

                            
                    $RandTemperatur array_rand($temperatur);
                            
                    $TemperaturPrint $temperatur[$RandTemperatur];

                            
                    $Text "Es ist gerade $TemperaturPrint ° Grad.";

                            return 
                    $Text;

                            }

                    function 
                    Zeit()
                             {
                             
                    $datum date("d. m");
                             
                    $uhrzeit date("H:i");

                             
                    $Text "Es ist der $datum, ($uhrzeit).";

                             return 
                    $Text;
                             }

                    function 
                    DerGenerator()
                             {
                    $tageszeit date("H");

                    if (
                    $tageszeit == || || || 8)
                         {
                         
                    TemperaturGeneratorWinterMorgens();
                         }
                    if (
                    $tageszeit == || 10 || 11)
                         {
                         
                    TemperaturGeneratorWinterVormittags();
                         }
                    if (
                    $tageszeit == 12 || 13 || 14 || 15)
                         {
                         
                    TemperaturGeneratorWinterMittags();
                         }
                    if (
                    $tageszeit == 16 || 17 || 18 || 19)
                         {
                         
                    TemperaturGeneratorWinterNachmittags();
                         }
                    if (
                    $tageszeit == 20 || 21 || 22 || 23)
                         {
                         
                    TemperaturGeneratorWinterAbends();
                         }
                    if (
                    $tageszeit == || || || || 4)
                         {
                         
                    TemperaturGeneratorWinterNachts();
                         }
                    return 
                    $tageszeit;

                    ?>

                    ... ausgeben tue ich das ganze jetzt über :

                    <?php echo Zeit() ?>
                    <?php echo DerGenerator() ?>

                    .... doch es wird anstatt der Text mit der aktuellen Temperatur, immer nur die aktuelle Stunde ausgegeben die ich mit $tageszeit am Anfang der Funktion definiert habe.

                    Was mache ich falsch ??
                    Grüße
                    Andreas

                    Kommentar


                    • #11
                      also erstmal machst du es m.e. viel zu umständlich.

                      abfragen dieser art
                      if ($tageszeit == 5 || 6 || 7 || 8)
                      lassen sich doch wohl kürzer in der form
                      if ($tageszeit >= 5 && $tageszeit <= 8)
                      schreiben.

                      ausserdem ist es doch wenig sinnvoll, jede menge funktionen
                      TemperaturGeneratorWinterMorgens();
                      TemperaturGeneratorWinterVormittags();
                      TemperaturGeneratorWinterMittags();
                      etc. zu schreiben, wenn diese ale im grossen und ganzen das selbe tun.
                      schreib dir stattdessen eine funktion
                      TemperaturGeneratorWinter($zeit);
                      der du dann für $zeit einen entsprechenden parameter übergibst, entweder als string "morgens", "vormittags", etc., oder einfach nur als zahl.
                      diesen parameter fragst du dann innerhalb der funktion ab (am einfachsten mit switch()), und setzt deine variablen $temperatur, $RandTemperatur und $TemperaturPrint auf die entsprechenden werte.

                      doch es wird anstatt der Text mit der aktuellen Temperatur, immer nur die aktuelle Stunde ausgegeben die ich mit $tageszeit am Anfang der Funktion definiert habe.
                      du gibst innerhalb deiner temperatur-funktionen einen text mit return zurück - doch wo wird dieser rückgabewert denn 'in empfang genommen'?

                      entweder machst du ein
                      echo TemperaturGeneratorWinterVormittags();
                      um den wert den eine funktion zurückliefert auszugeben, oder du baust das echo in die funktion mit ein...
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Endlich habe ich es geschafft, hier das endgültige Script :

                        PHP-Code:
                        <?php

                        srand 
                        ((float) microtime() * 10000000);

                        function 
                        TemperaturGeneratorWinterMorgens()
                                {
                                
                        $temperatur = array (
                                                        
                        '0',
                                                        
                        '-1'
                                                        
                        );

                                
                        $RandTemperatur array_rand($temperatur);
                                
                        $TemperaturPrint $temperatur[$RandTemperatur];

                                
                        $Text "Die Temperatur in der Baronie beträgt $TemperaturPrint °Grad.";

                                return 
                        $Text;

                                }

                        function 
                        TemperaturGeneratorWinterVormittags()
                                {
                                
                        $temperatur = array (
                                                        
                        '1',
                                                        
                        '2'
                                                        
                        );

                                
                        $RandTemperatur array_rand($temperatur);
                                
                        $TemperaturPrint $temperatur[$RandTemperatur];

                                
                        $Text "Die Temperatur in der Baronie beträgt $TemperaturPrint °Grad.";

                                return 
                        $Text;

                                }

                        function 
                        TemperaturGeneratorWinterMittags()
                                {
                                
                        $temperatur = array (
                                                        
                        '2',
                                                        
                        '3'
                                                        
                        );

                                
                        $RandTemperatur array_rand($temperatur);
                                
                        $TemperaturPrint $temperatur[$RandTemperatur];

                                
                        $Text "Die Temperatur in der Baronie beträgt $TemperaturPrint °Grad.";

                                return 
                        $Text;

                                }

                        function 
                        TemperaturGeneratorWinterNachmittags()
                                {
                                
                        $temperatur = array (
                                                        
                        '1',
                                                        
                        '2'
                                                        
                        );

                                
                        $RandTemperatur array_rand($temperatur);
                                
                        $TemperaturPrint $temperatur[$RandTemperatur];

                                
                        $Text "Die Temperatur in der Baronie beträgt $TemperaturPrint °Grad.";

                                return 
                        $Text;

                                }

                        function 
                        TemperaturGeneratorWinterAbends()
                                {
                                
                        $temperatur = array (
                                                        
                        '0',
                                                        
                        '-1'
                                                        
                        );

                                
                        $RandTemperatur array_rand($temperatur);
                                
                        $TemperaturPrint $temperatur[$RandTemperatur];

                                
                        $Text "Die Temperatur in der Baronie beträgt $TemperaturPrint °Grad.";

                                return 
                        $Text;

                                }

                        function 
                        TemperaturGeneratorWinterNachts()
                                {
                                
                        $temperatur = array (
                                                        
                        '-2',
                                                        
                        '-3'
                                                        
                        );

                                
                        $RandTemperatur array_rand($temperatur);
                                
                        $TemperaturPrint $temperatur[$RandTemperatur];

                                
                        $Text "Die Temperatur in der Baronie beträgt $TemperaturPrint °Grad.";

                                return 
                        $Text;

                                }

                        function 
                        Zeit()
                                 {
                                 
                        $datum date("d. m.");
                                 
                        $uhrzeit date("H:i");

                                 
                        $Text "Es ist der $datum und die Uhr schlägt $uhrzeit.";

                                 return 
                        $Text;
                                 }

                        function 
                        DerGenerator()
                                 {
                        $tageszeit date("H");

                        if (
                        $tageszeit == || || || 8)
                             {
                             echo 
                        TemperaturGeneratorWinterMorgens();
                             }
                        elseif (
                        $tageszeit == || 10 || 11)
                             {
                             echo 
                        TemperaturGeneratorWinterVormittags();
                             }
                        elseif (
                        $tageszeit == 12 || 13 || 14 || 15)
                             {
                             echo 
                        TemperaturGeneratorWinterMittags();
                             }
                        elseif (
                        $tageszeit == 16 || 17 || 18 || 19)
                             {
                             echo 
                        TemperaturGeneratorWinterNachmittags();
                             }
                        elseif (
                        $tageszeit == 20 || 21 || 22 || 23)
                             {
                             echo 
                        TemperaturGeneratorWinterAbends();
                             }
                        elseif (
                        $tageszeit == || || || || 4)
                             {
                             echo 
                        TemperaturGeneratorWinterNachts();
                             }

                                 }

                        ?>
                        @ wahsaga

                        Ich stimme dir zu das die vielen Funktionen nicht sehr übersichtlich sind und ich würde es auch gerne auf eine, maximal zwei, wenn man die Zeitangabe dazuzählt begrenzen... doch ich weiß nicht wie.

                        Kannst du mir vielleicht nochmal erklären wie genau du das gemeint hast mit deinem Vorschlag der Funktion ?

                        Auf jeden Fall schonmal vielen Dank an die Helfer
                        Es funktioniert jetzt auf jeden Fall, vielleicht könnt ihr mir ja noch helfen den Code etwas übersichtlicher zu machen.
                        Grüße
                        Andreas

                        Kommentar


                        • #13
                          den ganzen unteren sch**ss (inklusive der verschiedenen temperaturgenerator-funktionen) kannst du doch eigentlich recht einfach mit einer einzigen funktion erschlagen:

                          PHP-Code:
                          function DerGenerator($tageszeit){
                              
                          $tageszeit date("H");

                              if(
                          $tageszeit >= && $tageszeit <= 8){
                                 
                          $temperatur = array ( '0''-1' );
                              }
                              elseif(
                          $tageszeit >=&& $tageszeit <= 11){
                                 
                          $temperatur = array ( '1''2' );
                              }
                              elseif(
                          $tageszeit >=12 && $tageszeit <= 15){
                                  
                          $temperatur = array ( '2''3' );
                              }
                              elseif(
                          $tageszeit >=16 && $tageszeit <= 19){
                                  
                          $temperatur = array ( '1''2' );
                              }
                              elseif(
                          $tageszeit >=20 && $tageszeit <= 23){
                                  
                          $temperatur = array ( '0''-1' );
                              }
                              else{
                                  
                          $temperatur = array ( '-2''-3' );
                              }

                              
                          $RandTemperatur array_rand($temperatur);
                              
                          $TemperaturPrint $temperatur[$RandTemperatur];

                              
                          $Text "Die Temperatur in der Baronie beträgt $TemperaturPrint °Grad.";

                             echo 
                          $Text;


                          (ist jetzt natürlich ungetestet, aber so oder ähnlich sollte es funktionieren)
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            Vielen Dank... das sieht doch gleich viel kürzer und kompakter aus.
                            Grüße
                            Andreas

                            Kommentar

                            Lädt...
                            X