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

Den Wochentag eines beliebigen Datums ermitteln..: .. (Seite 2)



<< |< 1 2 >| >> 15 Einträge, 2 Seiten
Strat
 2003-11-06 14:09
#69818 #69818
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=format_c,06.11.2003, 13:02]was macht den der switch m?[/quote]
perldoc --? sagt mir dazu:
Code: (dl )
    -m   Display module's file in its entirety
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
format_c
 2003-11-06 14:13
#69819 #69819
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Ah cool. Wieder was gelernt.

Gruß Alex
havi
 2003-11-06 14:20
#69820 #69820
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Ist oft nicht schlecht wenn man schnell etwas nach sehen will!

Gruss
macMeck
 2003-11-06 14:21
#69821 #69821
User since
2003-08-04
162 Artikel
BenutzerIn
[default_avatar]
Hilfreich für solche Sachen finde ich auch das Modul Date::Calc. Das kann noch so einiges mehr...

macMeck
It all works, as long as it's documented!
Crian
 2003-11-06 14:25
#69822 #69822
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Wenn Du wissen willst, wie es geht:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
sub tag_der_woche {
# --------------------------------------------------------------------
# sub          : t a g _ d e r _ w o c h e
# --------------------------------------------------------------------
# Autor        : CD
# Aufgabe      : Berechnet den Wochentag zu einem Datum.
#
# Vgl. http://www.informatik.uni-ulm.de/pm/mitarbeiter/mark/day_of_week.html
#
# Parameter    : Tag (1-31), Monat (1-12) und Jahr (4-Stellig)
# Rückgabewert : 0 (Sonntag) bis 6 (Samstag)
# -------------------------------------------------------------------
# 0.0.1 - 17.01.2003 - CD - Erstellt
# 0.0.2 - 20.01.2003 - CD - Funktion ist_schaltjahr verwendet
# --------------------------------------------------------------------
   my $t = shift;
   my $m = shift;
   my $j = shift;

   print "tag_der_woche: t='$t', m='$m', j='$j'\n" if $Debug > 2;

   # Abbruch der Funktion bei falshen Argumentübergaben:
   return -1 unless defined($t) and defined($m) and defined($j);
   return -2 unless 1 <= $t and $t <= 31;
   return -3 unless 1 <= $m and $m <= 12;
   return -4 unless 1592 <= $j and $j <= 2299;

   my %jahrhundert = (15 => 0,
                      16 => 6,
                      17 => 4,
                      18 => 2,
                      19 => 0,
                      20 => 6,
                      21 => 4,
                      22 => 2,
                     );

   my $jj = $j % 100;      # letzte beiden Ziffern des Jahres
   my $jh = int($j / 100); # Jahhundert (erste beide Ziffern des Jahres

   my $schalt = ist_schaltjahr($j);
   print "jh='$jh', jj='$jj', schalt='$schalt'\n" if $Debug > 2;

   my $jhdtcode = $jahrhundert{$jh};
   print "jhdtcode='$jhdtcode'\n" if $Debug > 2;

   my $jahrcode = $jj + int($jj / 4);
   print "jahrcode='$jahrcode'\n" if $Debug > 2;

   my @monat = (1-$schalt, 4-$schalt, 4, 0, 2, 5, 0, 3, 6, 1, 4, 6);

   my $monatcode = $monat[$m-1];
   print "monatcode='$monatcode'\n" if $Debug > 2;

   my $tagcode = $jhdtcode + $jahrcode + $monatcode + $t;
   --$tagcode; # damit Sonntag auf die 0 fällt...
   $tagcode %= 7;
   print "tagcode='$tagcode'\n" if $Debug > 2;

   return $tagcode;
} # sub tag_der_woche

sub ist_schaltjahr {
# --------------------------------------------------------------------
# sub          : i s t _ s c h a l t j a h r
# --------------------------------------------------------------------
# Autor        : CD
# Aufgabe      : Gibt an, ob das übergebene Jahr ein Schaltjahr ist.
# Parameter    : Jahr
# Rückgabewert : 0 oder 1
# --------------------------------------------------------------------
# 0.0.1 - 20.01.2003 - CD - Erstellt
# --------------------------------------------------------------------
   my $j = shift;

   return 1 if $j%4==0 and ($j%100!=0 or $j%400==0);
   return 0;
} # sub ist_schaltjahr


Grrr wieso sind die Kästen nicht breit genug für 80 Zeichen??\n\n

<!--EDIT|Crian|1068121659-->
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 >| >> 15 Einträge, 2 Seiten



View all threads created 2003-11-06 13:21.