Marcus: Anzahl der Tage im Monat?????

Hello user's

wie kann ich mittels perl herrausfinden wieviele Tage es im Monat
gibt?
Egal welches Jahr bzw. welchen Monat????

gruss Marcus

  1. Hallo Marcus,

    Eingentlich brauchst Du dafür ja gar keine Perl-Funktion (bzw. Modul). Wieviel Tage ein Monat hat ist ja im gregorianischer Kalender festgelegt.
    11 von 12 Monaten sind ja auch jedes Jahr konstant, nur der Monat Februar kann variieren.

    Bei CPAN habe ich ein Modul gefunden, welches Dir einen boolschen Wert zurückgibt, ob ein Jahr ein Schaltjahr ist oder nicht:
    Date-Leapyear

    Gruß
    Helmut Weber

    --
    -------------------------------------------
    Mode ist eine Variable, Stil eine Konstante
  2. Hallo Helmut

    wie kann ich mittels perl herrausfinden wieviele Tage es im Monat
    gibt?
    Egal welches Jahr bzw. welchen Monat????

    Jeder Monat hat doch jedes Jahr gleich viele Tage, ausser der Februar in den Schaltjahren 29 statt 28. Darum kannst Du es im Skript reinschreiben, z.B. $tage_januar = 31 etc; für den Februar musst Du prüfen ob das Jahr ein Schaltjahr ist:
    if ($year % 4 == 0) {
       $tage_februar = 29;
    }
    else {
      $tage_februar = 28;
    }

    Gruss,
    il trap

    1. Hallo Helmut

      Sorry, meinte natürlich Markus... :-)

      Gruss,
      il trap

    2. Hi,

      Jeder Monat hat doch jedes Jahr gleich viele Tage, ausser der Februar in den Schaltjahren 29 statt 28. Darum kannst Du es im Skript reinschreiben, z.B. $tage_januar = 31 etc; für den Februar musst Du prüfen ob das Jahr ein Schaltjahr ist:
      if ($year % 4 == 0) {
         $tage_februar = 29;

      und dabei auch berücksichtigen, daß die durch 100 teilbaren Jahre nur dann Schaltjahr sind, wenn sie auch durch 400 teilbar sind...

      cu,
      Andreas

      --
      Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
      http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
      1. Hallo,

        if ($year % 4 == 0) {
           $tage_februar = 29;

        und dabei auch berücksichtigen, daß die durch 100 teilbaren Jahre nur dann Schaltjahr sind, wenn sie auch durch 400 teilbar sind...

        »»

        Wieso denn das? Jedes durch 4 teilbare Jahr ist ein Schaltjahr, also auch 1900, 1800, nicht?

        Gruss,
        il trap

        1. Hallo,

          if ($year % 4 == 0) {
             $tage_februar = 29;

          und dabei auch berücksichtigen, daß die durch 100 teilbaren Jahre nur dann Schaltjahr sind, wenn sie auch durch 400 teilbar sind...
          »»

          Wieso denn das? Jedes durch 4 teilbare Jahr ist ein Schaltjahr, also auch 1900, 1800, nicht?

          Sorry, hattest Recht!

          http://www.diaware.de/html/tage.html#schalt

          Gruss,
          il trap

  3. Isch bedanke mich für die Antworten!
    Problem gelöst!
    Thanks

    gruss marcus

  4. Hello user's

    okey jetzt hab ich ein neues Problem!
    Wie bekomm ich die Anzahl der Monat raus???
    Ich hab zum beispiel den Monat gegeben:

    $monat = (localtime)[4];

    und jetzt will ich wissen wieviel Tage dieser Monat hat.
    Ich will die Tage nicht vordefinieren.

    zB.: 01 = 31
    also Januar hat 31 tage

    gruss Marcus

    1. Hi,

      und jetzt will ich wissen wieviel Tage dieser Monat hat.

      Erzeuge eine Liste, die die Anzahlen enthält.
      Greife mit der Monatsnummer auf das passende Element zu (achte darauf, welche Nummer Du für welchen Monat bekommst und welchen Index Du ansprechen mußt).
      Falls der Monat der Februar ist, berücksichtige noch Schaltjahre.

      cu,
      Andreas

      --
      Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
      http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/