Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]5711[/thread]

Zuverlässiges Kalenderscript: wegen der Feiertagsermittlung (Seite 2)



<< |< 1 2 >| >> 13 Einträge, 2 Seiten
Crian
 2003-09-11 19:41
#50589 #50589
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Gut, dann kann ich ja einfach zurückrechnen, da ich eine Funktion habe, die den Wochentag eines betreffenden Datums herausfindet...

Edit: Wie löse ich denn wohl die Behandlung der unterschiedlichen Bundesländer mal elegeant?

Sollte ich vielleicht der Funktion "ist_feiertag" nicht nur das Datum sondern auch das Bundesland mitliefern? Am besten als letztem Parameter, dem ich dann in der Funktion, sollte er undef sein oder nicht meinen Bundesländern entsprechen, einfach auf Nordrhein-Westfalen setze (ist schließlich das einwohnerreichste Bundesland, insofern ist die Wahrscheinlichkeit am größten, dass es passt. Dass ich da jetzt wohne ist natürlich rein zufällig und hat mit dieser Entscheidung rein gar nichts zu tun *hüstel*).

Ich hoffe, ich komme demnächst mal dazu an der Funktion noch etwas zu schrauben...\n\n

<!--EDIT|Crian|1063296338-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Strat
 2003-09-12 01:33
#50590 #50590
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
@dominicn: danke fuer den Algorithmus vom Buss- und Bettag; ich hab's gerade korrigiert, und zwar folgende aenderungen:
zeile 174: $year in GetLocalHolidays als Übergabeparameter hinzugefügt:
Code: (dl )
(%holidays) = (%holidays, &GetLocalHolidays($country, $year));

Zeile 201: $year aus @_ ausgelesen:
Code: (dl )
my ($country, $year) = @_; # changed


Und dann ab Zeile 237 sieht der Block fuer Sachsen jetzt folgendermassen aus:
Code: (dl )
1
2
3
4
5
6
7
8
   # Buss- und Bettag
   if (grep { lc($country) eq lc($_) } qw(Sachsen)) {

#      $holidays{'20.11'} = "Buss- und Bettag";
       # changed to
       my $weekdayXmas = &Date::Manip::Date_DayOfWeek(12, 24, $year) % 7;
       $holidays{(22-$weekdayXmas) . ".11"} = "Buss- und Bettag";
   } # if

Das liefert bei mir den 19.11.2003 als Buss/Bettag. Koenntest Du bitte mal checken, ob das jetzt korrekt ist?
Der Algorithmus ist bei mir: 26 November - Wochentag von Weihnachten (1..7; 7 wird zu 0) = totensonntag - 4 (Sonntag bis Mittwoch) = buss/bettag\n\n

<!--EDIT|Strat|1063316121-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Crian
 2003-09-14 01:37
#50591 #50591
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Ah gut, dann kann ich mir ja Zeit lassen :-)
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< |< 1 2 >| >> 13 Einträge, 2 Seiten



View all threads created 2003-09-11 14:28.