Schrift
[thread]7434[/thread]

Datumsfunktion: 3. Freitag eines Monatsbestimmen



<< >> 5 Einträge, 1 Seite
weismat
 2005-11-04 15:03
#59733 #59733
User since
2003-08-18
142 Artikel
BenutzerIn
[default_avatar]
Wie kann ich eine Perl-Funktion schreiben, die mir für eine angegebene Jahr/Monatskombination den dritten Freitag zurückgibt?
Ich kenne zwar gmtime, weiß aber nicht, wie ich diese Funktion für ein freivergebenes Datum benutzen kann.
Danke!
pq
 2005-11-04 15:19
#59734 #59734
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
CPAN:Date::Calc
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
weismat
 2005-11-08 10:27
#59735 #59735
User since
2003-08-18
142 Artikel
BenutzerIn
[default_avatar]
Danke für den Tip:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
sub getThirdFriday(){
my ($year, $month)=@_;
my $startThirdWeek=15;
my $dow = Day_of_Week($year, $month, "15");
if ($dow<6) {
return $startThirdWeek+5-$dow;
}
else {
return $startThirdWeek+12-$dow;
}
Dubu
 2005-11-08 11:25
#59736 #59736
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Zu kompliziert und syntaktisch falshc.

Zu kompliziert, weil Date::Calc genau fuer dein Problem eine eigene Funktion hat:
Code: (dl )
1
2
3
4
5
6
7
sub getThirdFriday {
   my ($year, $month) = @_;
   return (Nth_Weekday_of_Month_Year($year,$month,
       5, # Freitag
       3  # 3. im Monat
   ))[2];  # nur den Tag zurueckgeben
}

Flasch ist der Prototyp in deiner Funktion. Leere Klammern bedeuten, dass die Funktion keine Parameter bekommen darf, andererseits willst du aber Jahr und Monat uebergeben. Benutze besser keine Prototypen (d.h. keine runden Klammern in der Funktionsdefinition), wenn du nicht genau weisst, was sie machen.
weismat
 2005-11-08 12:35
#59737 #59737
User since
2003-08-18
142 Artikel
BenutzerIn
[default_avatar]
Danke...Die Doku für Date::Calc ist doch sehr umfangreich. Das mit den Prototypen werde ich beachten.
<< >> 5 Einträge, 1 Seite



View all threads created 2005-11-04 15:03.