Schaltjahr

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

  • Schaltjahr

    Erstmal hi,

    ich rechne die verbleibenden Tage bis zu einem bestimmten Datum per MySQL aus. Das ist auch soweit kein Problem, solang der Tag noch in diesem Jahr ist.
    Doch ist der Tag erst im nächsten JAhr wirds n bissel komplizierter. 365-Tage die aus der DB kommen.

    Jetzt kommt aber mein "Problem": ist das jetzige oder das nächste Jahr ein Schaltjahr so will ich den zusätzlichen Tag natürlich auch berechnen. Das hab ich jetzt zwar hinbekommen (glaub ich ), aber ich bin mir fast sicher, dass das auch besser geht!

    Hier mal mein
    codeschnipsel:
    PHP-Code:
    $sql "SELECT
                              Name,
                              Vorname,
                              Birthday,
                              (YEAR(CURDATE())-YEAR(birthday)) - 
    (RIGHT(CURDATE(),5)<RIGHT(birthday,5)) AS age,
                              TO_DAYS(CONCAT_WS('-',YEAR(now()),MONTH (birthday),DAYOFMONTH(birthday)))-
    TO_DAYS(now()) AS todays,
                              MONTH(birthday) AS birthmonth
                      FROM    hp_user
                      WHERE   BirthdayOK = '1'
                      ORDER BY "
    .$order;
              
    $query $this->_query($sql);
              while(
    $value mysql_fetch_array($query))
                {
                
    /*Falls B-Day erst nächstes JAhr ist! + Unterscheidung von Schaltjahr!
    Erklärung der if-Abfrage: 
    1.Fall:
    Zuerst wird geprüft, ob der Tag in diesem JAhr schon verstrichen ist, dann ob diese Jahr ein Schlajahr ist, ob der jetzige Monat Jan oder Feb ist und zu guter letzt, ob das Datum >= März ist.
    2.Fall:
    Fangen wir schonmal nach dem 1. und an ;)
    Ob das nächste Jahr ein Schaltjahr ist und das Datum >= März ist. */

                  
    if(($value['todays'] < && date('L') == && date('m') <= 02 && $value['birthmonth'] < 03)OR($value['todays'] < && date('L'date('Y')+1) == &&  $value['birthmonth'] >= 03))
                    {
                      
    $value['todays'] = 366+$value['todays'];
                    }
                  elseif(
    $value['todays'] < AND date('L') == 0)
                    {
                      
    $value['todays'] = 365+$value['todays'];
                    } 
    Das ist meiner Meinung nach leicht kompliziert, bzw. umständlich deswegen wollt ich mal fragen, ob jemand eine bessere Idee hat.

    Danke im Vorraus!

    Greetingz

    Damian
    Zuletzt geändert von Damian1984; 29.10.2003, 19:55.
    Für Rechtschreibfehler übernehme ich keine Haftung!

  • #2
    nimm doch die Funktion from_days() und ziehe das eine ergebnis vom anderen ab, da haste kein Problem mit Schaltjahr
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      *VERSCHIEB* nach sql
      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 |


      Kommentar

      Lädt...
      X