[Thread Prev][Thread Next]   >Date Index >Thread Index

Re: Heute in x Werktagen

Joerg Meltzer - Wed Oct 03 23:10:25 2007

Hallo zusammen,

Stefan `Sec` Zehl schrieb:
> Wenns nur um Sa/So geht, isses ja doch eher einfach.
> Wenn du Feiertage mit einbeziehen willst, musst du dir erstmal überlegen
> für "Wo" das gelten soll. Die sind naemlich pro Bundesland
> unterschiedlich.
>
> Mir ist keine fertige Lösung bekannt. Ich würde einfach eine Liste der
> Feiertage nehmen (aus dem Web, oder selbst berechnet aus der Jahreszahl)
> und für jeden Feiertag schauen, ob er in dem Bereich von today() bis
> today()+werktage (nach der Sa/So-Methode) liegt, und dann eben noch
> einen Tag draufzaehlen.
>
>
> CU,
>     Sec
>   
Date::Calc hilft auch bei dem Bundesländerproblem...

guckst du Quellcode

$Profiles->{'DE'} = # Deutschland
{
...
     # Common legal holidays (in all federal states):
     "Neujahr"                   => "01.01.",
     "Karfreitag"                => "-2",
     "Ostersonntag"              => "+0",
     "Ostermontag"               => "+1",
     "Tag der Arbeit"            => "01.05.",
     "Christi Himmelfahrt"       => "+39",
     "Pfingstsonntag"            => "+49",
     "Pfingstmontag"             => "+50",
     "Tag der deutschen Einheit" => "03.10.",
     "1. Weihnachtsfeiertag"     => "25.12.",
     "2. Weihnachtsfeiertag"     => "26.12."
...

$Profiles->{'DE-SH'} = # Schleswig-Holstein
{
    %{$Profiles->{'DE'}}
};
$Profiles->{'DE-TH'} = # Thüringen
{
    %{$Profiles->{'DE'}},
    "Reformationstag"           => "31.10."
};
...


So wie ich das sehe funktioniert das auch ganz gut.

perl -e '
use Date::Calendar;
use Date::Calendar::Profiles qw($Profiles);
$cal = Date::Calendar->new($Profiles->{"DE-TH"});

print "Arbeitstage: ", $cal->delta_workdays(
  2007,10,28 =>
  2007,11,1 =>
  1,1)'
Arbeitstage: 3

perl -e '
use Date::Calendar;
use Date::Calendar::Profiles qw($Profiles);
$cal = Date::Calendar->new($Profiles->{"DE"});

print "Arbeitstage: ", $cal->delta_workdays(
  2007,10,28 =>
  2007,11,1 =>
  1,1)'
Arbeitstage: 4


Cheers,
  Jörg

-- 
Jörg Meltzer * joerg.meltzer@tngtech.com * +49-176-22664106
TNG Technology Consulting GmbH, Betastr. 13a, 85774 Unterföhring
Geschäftsführer: Henrik Klagges, Gerhard Müller, Christoph Stock
Amtsgericht München, HRB 135082 


Attachment: signature.asc
Description: OpenPGP digital signature


Next: