Kokol: Advent berechnen (Zeiträume) - schwer...

Hallo zusammen,

ich würde gerne in der Adventszeit ein Adventskranz auf meiner Seite beleuchten. Nun sind da einige Probleme zu bewerkstelligen, die mir gerade den letzten Nerv rauben:

1. Die Advents-Sonntage fallen immer auf andere Daten, daher müsste erstmal das Datum der 4 Sonntage vor dem 24 (oder eben der 24) berechnet werden... habe es schon mit Delta-Time versucht, aber das Calc-Modul macht irgendwie große Probleme und auch sonst war der Ansatz mehr schlecht als Recht.

2. Es müsste ein "ok1" zurück gegeben werden, wenn das momentane Datum zwischen dem 1. Advent und dem 2. liegt (schließlich soll ja der Kranz nicht nur am Sonntag angezeigt werden. genauso für den Zeitraum für 2. bis 3. und von 3. bis 4. ...

Für Hilfe wäre ich sehr, sehr Dankbar.

Viele Grüße
Kokol

  1. Hi,

    1. Die Advents-Sonntage fallen immer auf andere Daten, daher müsste erstmal das Datum der 4 Sonntage vor dem 24 (oder eben der 24) berechnet werden...

    Und wo ist das Problem?

    Du ermittelst den Wochentag für den 24. Dezember.
    Üblicherweise erhält man für Sonntag 0, für Montag 1, für Dienstag 2, ... für Samstag 6.
    Um genau so viele Tage gehst Du zurück. Jetzt hast Du den 4. Advent.
    Der erste Advent ist dann 21 Tage früher, der 2. Advent 14 Tage früher, der 3. Advent 7 Tage früher.

    1. Es müsste ein "ok1" zurück gegeben werden, wenn das momentane Datum zwischen dem 1. Advent und dem 2. liegt (schließlich soll ja der Kranz nicht nur am Sonntag angezeigt werden. genauso für den Zeitraum für 2. bis 3. und von 3. bis 4. ...

    Du hast jetzt 5 Daten (4 Adventssonntage und noch den 24. Dezember), also 4 Intervalle (wobei das letzte ggf. ziemlich kurz ist).
    Jetzt mußt Du nur noch ermitteln, in welches der Intervalle das aktuelle Datum fällt.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. Hi,

      Danke für deine Antwort.

      Das ist eine gute Idee - wenn man zulange vor einem Problem sitzt, findet man die Lösung nicht mehr...

      Ich hatte mir schon bis 2020 die 1. Adventsonntage aus dem Kalender gesucht und in eine Variable geschrieben - von dort wollte ich dann jedesmal 7 Tage hochrechnen, allerdings bin ich schon hier wieder gescheitert.

      Also:
      1. Wochentag des 24.Dezember herausfinden - herunterzählen bis zum ersten Sonntag - von dort (4. Advent) 7 Tage abziehen (3. Advent) 14 Tage für 2. Advent und 21 für 1. Advent.

      Wie kann ich das Codeseitig bewerkstelligen?

      Das zweite Problem gehe ich danach an - eins nach dem anderen :(

      Viele Grüße

      1. Also:

        1. Wochentag des 24.Dezember herausfinden - herunterzählen bis zum ersten Sonntag - von dort (4. Advent) 7 Tage abziehen (3. Advent) 14 Tage für 2. Advent und 21 für 1. Advent.

        Wie kann ich das Codeseitig bewerkstelligen?

        http://perldoc.perl.org/functions/localtime.html

        #!/usr/bin/perl -w  
        use strict;  
        use Time::Local;  
          
        print get_wday('24.12.2008');  
        sub get_wday{  
         my $datum_str = shift || return -1;  
         my($day, $month, $year) = split /\./, $datum_str;  
         return -1 if $day < 1 or $day > 31;  
         return -1 if $month < 1 or $month > 12;  
         my $time = timelocal(0, 0, 0, $day, $month - 1, $year);  
         return (localtime($time))[6];  
        }
        

        Struppi.