Programmieraufgabe zur Nacht

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Programmieraufgabe zur Nacht

    Hallo,

    neulich, beim herumalbern in der Mittagspause, kam mir der Gedanke, was wohl für ein Tag wäre, wenn man ständig einen Tag in der Woche vergessen hätte. Den lustigen "Bummerstag" zwischen Dienstag und Mittwoch. Vielleicht hätte man Glück, und es wäre schon Wochenende. Kurzes aber schallendes Gelächter, und die Sache war vergessen. Aber da heute in Köln Schienenchaos herrschte, kam mir eine Idee: Der Bummerstag wurde wiederentdeckt und zum 1.1.1970 eingeführt. Schreibe eine Funktion, die aus einem übergebenen Timestamp den dazugehörigen Wochentag unter berücksichtigung des Bummerstags berechnet.

    Der schönste/kreativste Code wird mit einer eigenst gemalten Medaille geehrt.
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

  • #2
    Re: Programmieraufgabe zur Nacht

    Original geschrieben von unset
    Der schönste/kreativste Code wird mit einer eigenst gemalten Medaille geehrt.
    du bist krank ...

    kein wunder, bei zu wenig schlaf. *gg*
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Comment


    • #3
      Informatikstudenten haben doch nachts Zeit :-D

      PHP Code:
      <?php


          
      /**
          *    Rechnet mit dem Bummerstag.
          */
          
      class BummersDate
          
      {
          
              
      /**
              *    Meine Woche sieht so aus.
              */
              
      private static $my_week = array(
                  
      "Montag",        /*0*/
                  
      "Dienstag",        /*1*/
                  
      "Bummerstag",    /*2*/
                  
      "Mittwoch",        /*3*/
                  
      "Donnerstag",    /*4*/
                  
      "Freitag",        /*5*/
                  
      "Samstag",        /*6*/
                  
      "Sonntag"        /*7*/
              
      );
              
              
      /**
              *    R&uuml;ckgabe der {@link BummersDate::weekday()} Funktion.
              */
              
      private static $weekday_output "Heute wäre %s!";
          
              
      /**
              *    Gibt heutigen Tag auf deutsch zur&uuml;ck mit
              *    Ber&uuml;cksichtigung des Bummerstages.
              *
              *    @param    int        der Zeitstempel
              *    @return string    theoretischer heutiger Tag auf deutsch
              */
              
      public static function weekday($timestamp)
              {
              
                  
      //Montag, Dienstag, Bummerstag, Mittwoch,
                  //Donnerstag, Freitag, Samstag, Sonntag
                  
      $days_per_week count(self::$my_week);
                  
                  
      //Sekunden pro Tag
                  
      $sec_per_day 60 60 24;
                  
                  
      //Vergangene Tage (seit 1.1.1970)
                  
      $days = (int)($timestamp $sec_per_day);
                  
                  
      //Heutige Tag, Montag = 0, Dienstag = 1, ...
                  
      $today $days $days_per_week;
                  
                  
      //Modulo Rechnung => keine Warnung für falschen Index
                  
      assert($today $days_per_week);
                  
                  
      //Wochentag ausgeben
                  
      return sprintf(self::$weekday_outputself::$my_week[$today]);
              
              }
          }

          
          echo 
      BummersDate::weekday(time());

      ?>
      Ausgabe:
      PHP Code:
      Heute wäre Samstag
      UND, ja es wäre quasi Wochenende !

      greetz Flip
      Find Parties?
      Partysuche

      Comment


      • #4
        echo(($i=eval('for($l=date("z")+date("w",0),$i=date("Y")-1;$i>=date("Y",0);$i--,$l+=date("z",mktime(0,0,0,12,31,$i))+1);
        return$l;')%8)==3?'Bumsday':$i<3?date('l'):date('l',mktime(0,0,0,1,date('w',0)+$i-1,date('Y',0))));



        Vielleicht nicht korrekt, aber dafür kreativ. Braucht nur date() und mktime(), das eval() ist nur Zucker.
        Last edited by onemorenerd; 02-07-2008, 06:26.

        Comment


        • #5
          Nein!
          Heute ist kein Wochenende!
          PHP Code:
          $woche =  array(  "Sonntag",
                            
          "Montag",
                            
          "Dienstag",
                            
          "Bummerstag",
                            
          "Mittwoch",
                            
          "Donnerstag",
                            
          "Freitag",
                            
          "Samstag",
                          );

          $starttag   date('w',mktime(0,0,1,1,1,1970)); // offset berechnen
          $eintag     24*60*60;
          $tage       ceil(time() / $eintag); // Tage seit dem 1.1.1970
          $tage      += $starttag// der 1.1.1970 war KEIN Sonntag
          $wochentag  $tage count($woche);

          echo 
          $woche[$wochentag]; 
          @Flip7
          Du hast leider 3 fette Böcke drin:
          1. Die Woche fängt mit Sonntag an (in PHP)
          2. (int) rundet ab! deswegen werden angefange Tage abgeschnitten. Also berechnest du Gestern
          3. der 1.1.1970 war weder ein Sonntag, noch ein Montag
          Last edited by combie; 02-07-2008, 13:16.
          Wir werden alle sterben

          Comment


          • #6
            ihr habt echt Zeit

            Comment


            • #7
              Immer noch sinnvoller, als das 200. Clanscript zu schreiben
              [FONT="Helvetica"]twitter.com/unset[/FONT]

              Shitstorm Podcast – Wöchentliches Auskotzen

              Comment


              • #8
                also laut dem Script von combie währe heute also bummerstag?

                obwohl ich das für eine ziemlich absurde idee halte, Witzig ist es

                vieleicht nochmehr solcher fun denksport aufgaben ^^
                Bitte Beachten.
                Foren-Regeln
                Danke

                Comment


                • #9
                  Die darf sich der Gewinner ausdenken, der um 23:30 gekürt wird
                  [FONT="Helvetica"]twitter.com/unset[/FONT]

                  Shitstorm Podcast – Wöchentliches Auskotzen

                  Comment


                  • #10
                    Ich hab da mal ne wichtige Frage: haben wir am Bummerstag frei oder is malochen angesagt????
                    Beantworte nie Threads mit mehr als 15 followups...
                    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                    Comment


                    • #11
                      Das ist natürlich ein ganz normaler Wochentag.
                      [FONT="Helvetica"]twitter.com/unset[/FONT]

                      Shitstorm Podcast – Wöchentliches Auskotzen

                      Comment


                      • #12
                        Son Mist...
                        Beantworte nie Threads mit mehr als 15 followups...
                        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                        Comment


                        • #13
                          Wer schreibt jetzt eigentlich die Genesis um? Irgendwas muß Gott doch am Bummerstag erschaffen haben oder hat er sich etwa 'ne Pause gegönnt? "Und Gott sprach: Heute mach ich mal nichts. Da machte Gott nichts. Und es geschah nichts. Und Gott sah, dass es gut war. Da ward aus Abend und Morgen der vierte Tag."

                          Comment


                          • #14
                            Nix wichtiges hat der da gemacht...
                            Nur LSD erfunden und sofort ausprobiert.
                            Siehe: http://www.dict.cc/englisch-deutsch/bummer.html
                            Wir werden alle sterben

                            Comment


                            • #15
                              *move*

                              ich hab' den thread mal nach OOO verschoben ...

                              ihr seid ja alle krank .....
                              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                              Comment

                              Working...
                              X