User Tools

Site Tools


old:programmieren:perl:kalender
apt-get install libdate-calc-perl
#!/usr/bin/perl -w

use strict;
use Date::Calc qw(Day_of_Week check_date Day_of_Year leap_year Easter_Sunday Week_Number Today);

my $key;
my $jahr;
my $mon_ende;
my $mon;
my $tg = 1;
my $sj;
my $year;
my $month;
my $day;
my $os;
my @tag = ("","Mo","Di","Mi","Do","Fr","Sa","So");
my @monat = ("","Januar","Februar","Maerz","April","Mai","Juni", "Juli","August","September","Oktober","November","Dezember");

($year,$month,$day) = Today();

if (! defined $ARGV[0] ) {$jahr = $year;}
else {$jahr = $ARGV[0];}

if (leap_year($jahr)) {$sj = 1;} else {$sj = 0;}
$os = Day_of_Year(Easter_Sunday($jahr));

print "|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n";
if ($jahr == $year){
printf("|\e[7m                                                                          \e[0m     %2s %2d. %-10s %4d    \e[7m                                                                          \e[0m|\n",$tag[Day_of_Week($year,$month,$day)],$day,$monat[$month],$year);}
else {print "|\e[7m                                                                          \e[0m             $jahr              \e[7m                                                                          \e[0m|\n";}
print "|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n|";
foreach $mon (1..12) {
printf(" %2d %-10s|",$mon,$monat[$mon]);
};
print "\n|--------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|\n|";

foreach $tg (1..31) {
foreach $mon (1..12) {
if (check_date($jahr,$mon,$tg)) {
   if (Day_of_Week($jahr,$mon,$tg) == 7){printf("\e[44m %2d  %2s       \e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}
   elsif (Day_of_Week($jahr,$mon,$tg) == 6){printf("\e[44m %2d  %2s \e[0m      |",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}
   elsif (Day_of_Year($jahr,$mon,$tg) == 1){   # Neujahr
      if (Day_of_Week($jahr,$mon,$tg) == 1) {printf("\e[44m %2d  %2s     %2d\e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)],Week_Number($jahr,$mon,$tg));}
      else {printf("\e[44m %2d  %2s       \e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}}
   elsif (Day_of_Year($jahr,$mon,$tg) == 6){  # Hl. 3 Koenige
      if (Day_of_Week($jahr,$mon,$tg) == 1) {printf("\e[44m %2d  %2s     %2d\e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)],Week_Number($jahr,$mon,$tg));}
      else {printf("\e[44m %2d  %2s       \e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}}
   elsif (Day_of_Year($jahr,$mon,$tg) == $os-47) {printf("\e[44m %2d  %2s \e[0m      |",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);} # Faschingsdienstag
   elsif (Day_of_Year($jahr,$mon,$tg) == $os-2) {printf("\e[44m %2d  %2s       \e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}  # Karfreitag
   elsif (Day_of_Year($jahr,$mon,$tg) == $os+1) {printf("\e[44m %2d  %2s     %2d\e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)],Week_Number($jahr,$mon,$tg));}  # Ostermontag
   elsif (Day_of_Year($jahr,$mon,$tg) == $os+39) {printf("\e[44m %2d  %2s       \e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}  # Christi Himmelfahrt
   elsif (Day_of_Year($jahr,$mon,$tg) == $os+50) {printf("\e[44m %2d  %2s     %2d\e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)],Week_Number($jahr,$mon,$tg));}  # Pfingstmontag
   elsif (Day_of_Year($jahr,$mon,$tg) == $os+60) {printf("\e[44m %2d  %2s       \e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}  # Fronleichnam
   elsif (Day_of_Year($jahr,$mon,$tg) == 121+$sj){   # Tag der Arbeit
      if (Day_of_Week($jahr,$mon,$tg) == 1) {printf("\e[44m %2d  %2s     %2d\e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)],Week_Number($jahr,$mon,$tg));}
      else {printf("\e[44m %2d  %2s       \e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}}
   elsif (Day_of_Year($jahr,$mon,$tg) == 276+$sj){   # Tag der Dt. Einheit
      if (Day_of_Week($jahr,$mon,$tg) == 1) {printf("\e[44m %2d  %2s     %2d\e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)],Week_Number($jahr,$mon,$tg));}
      else {printf("\e[44m %2d  %2s       \e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}}
   elsif (Day_of_Year($jahr,$mon,$tg) == 305+$sj){   # Allerheiligen
      if (Day_of_Week($jahr,$mon,$tg) == 1) {printf("\e[44m %2d  %2s     %2d\e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)],Week_Number($jahr,$mon,$tg));}
      else {printf("\e[44m %2d  %2s       \e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}}
   elsif (Day_of_Year($jahr,$mon,$tg) == 358+$sj){   # Hl. Abend
      if (Day_of_Week($jahr,$mon,$tg) == 1) {printf("\e[44m %2d  %2s \e[0m    %2d|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)],Week_Number($jahr,$mon,$tg));}
      else {printf("\e[44m %2d  %2s \e[0m      |",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}}
   elsif (Day_of_Year($jahr,$mon,$tg) == 359+$sj){   # 1. Weihnachtstag
      if (Day_of_Week($jahr,$mon,$tg) == 1) {printf("\e[44m %2d  %2s     %2d\e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)],Week_Number($jahr,$mon,$tg));}
      else {printf("\e[44m %2d  %2s       \e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}}
   elsif (Day_of_Year($jahr,$mon,$tg) == 360+$sj){   # 2. Weihnachtstag
      if (Day_of_Week($jahr,$mon,$tg) == 1) {printf("\e[44m %2d  %2s     %2d\e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)],Week_Number($jahr,$mon,$tg));}
      else {printf("\e[44m %2d  %2s       \e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}}
   elsif (Day_of_Year($jahr,$mon,$tg) == 365+$sj){   # Silvester
      if (Day_of_Week($jahr,$mon,$tg) == 1) {printf("\e[44m %2d  %2s \e[0m    %2d|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)],Week_Number($jahr,$mon,$tg));}
      else {printf("\e[44m %2d  %2s \e[0m      |",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}}
   else {
      if (Day_of_Week($jahr,$mon,$tg) == 1) {printf(" %2d  %2s     %2d|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)],Week_Number($jahr,$mon,$tg));}
      else {printf(" %2d  %2s       |",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}}}
else {print "              |";}
};
print "\n|";
};
print "-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n";

Auf CTRL-F3-Taste

apt-get install libdate-calc-perl
apt-get install libterm-readkey-perl
$HOME/.fluxbox/keys

Control F3 :execCommand xterm -T `date +%Y` -g 181x38+110+100 -e /home/ms/bin/kal-f3.pl
#!/usr/bin/perl -w

use strict;
use Date::Calc qw(Day_of_Week check_date Day_of_Year leap_year Easter_Sunday Week_Number Today);
use Term::ReadKey;

my $key;
my $jahr;
my $mon_ende;
my $mon;
my $tg = 1;
my $sj;
my $year;
my $month;
my $day;
my $os;
my @tag = ("","Mo","Di","Mi","Do","Fr","Sa","So");
my @monat = ("","Januar","Februar","Maerz","April","Mai","Juni", "Juli","August","September","Oktober","November","Dezember");

($year,$month,$day) = Today();

$jahr = $year;

if (leap_year($jahr)) {$sj = 1;} else {$sj = 0;}
$os = Day_of_Year(Easter_Sunday($jahr));

print "|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n";
if ($jahr == $year){
printf("|\e[7m                                                                          \e[0m     %2s %2d. %-10s %4d    \e[7m                                                                          \e[0m|\n",$tag[Day_of_Week($year,$month,$day)],$day,$monat[$month],$year);}
else {print "|\e[7m                                                                          \e[0m             $jahr              \e[7m                                                                          \e[0m|\n";}
print "|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n|";
foreach $mon (1..12) {
printf(" %2d %-10s|",$mon,$monat[$mon]);
};
print "\n|--------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|\n|";

foreach $tg (1..31) {
foreach $mon (1..12) {
if (check_date($jahr,$mon,$tg)) {
   if (Day_of_Week($jahr,$mon,$tg) == 7){printf("\e[44m %2d  %2s       \e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}
   elsif (Day_of_Week($jahr,$mon,$tg) == 6){printf("\e[44m %2d  %2s \e[0m      |",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}
   elsif (Day_of_Year($jahr,$mon,$tg) == 1){   # Neujahr
      if (Day_of_Week($jahr,$mon,$tg) == 1) {printf("\e[44m %2d  %2s     %2d\e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)],Week_Number($jahr,$mon,$tg));}
      else {printf("\e[44m %2d  %2s       \e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}}
   elsif (Day_of_Year($jahr,$mon,$tg) == 6){  # Hl. 3 Koenige
      if (Day_of_Week($jahr,$mon,$tg) == 1) {printf("\e[44m %2d  %2s     %2d\e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)],Week_Number($jahr,$mon,$tg));}
      else {printf("\e[44m %2d  %2s       \e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}}
   elsif (Day_of_Year($jahr,$mon,$tg) == $os-47) {printf("\e[44m %2d  %2s \e[0m      |",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);} # Faschingsdienstag
   elsif (Day_of_Year($jahr,$mon,$tg) == $os-2) {printf("\e[44m %2d  %2s       \e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}  # Karfreitag
   elsif (Day_of_Year($jahr,$mon,$tg) == $os+1) {printf("\e[44m %2d  %2s     %2d\e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)],Week_Number($jahr,$mon,$tg));}  # Ostermontag
   elsif (Day_of_Year($jahr,$mon,$tg) == $os+39) {printf("\e[44m %2d  %2s       \e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}  # Christi Himmelfahrt
   elsif (Day_of_Year($jahr,$mon,$tg) == $os+50) {printf("\e[44m %2d  %2s     %2d\e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)],Week_Number($jahr,$mon,$tg));}  # Pfingstmontag
   elsif (Day_of_Year($jahr,$mon,$tg) == $os+60) {printf("\e[44m %2d  %2s       \e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}  # Fronleichnam
   elsif (Day_of_Year($jahr,$mon,$tg) == 121+$sj){   # Tag der Arbeit
      if (Day_of_Week($jahr,$mon,$tg) == 1) {printf("\e[44m %2d  %2s     %2d\e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)],Week_Number($jahr,$mon,$tg));}
      else {printf("\e[44m %2d  %2s       \e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}}
   elsif (Day_of_Year($jahr,$mon,$tg) == 276+$sj){   # Tag der Dt. Einheit
      if (Day_of_Week($jahr,$mon,$tg) == 1) {printf("\e[44m %2d  %2s     %2d\e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)],Week_Number($jahr,$mon,$tg));}
      else {printf("\e[44m %2d  %2s       \e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}}
   elsif (Day_of_Year($jahr,$mon,$tg) == 305+$sj){   # Allerheiligen
      if (Day_of_Week($jahr,$mon,$tg) == 1) {printf("\e[44m %2d  %2s     %2d\e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)],Week_Number($jahr,$mon,$tg));}
      else {printf("\e[44m %2d  %2s       \e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}}
   elsif (Day_of_Year($jahr,$mon,$tg) == 358+$sj){   # Hl. Abend
      if (Day_of_Week($jahr,$mon,$tg) == 1) {printf("\e[44m %2d  %2s \e[0m    %2d|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)],Week_Number($jahr,$mon,$tg));}
      else {printf("\e[44m %2d  %2s \e[0m      |",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}}
   elsif (Day_of_Year($jahr,$mon,$tg) == 359+$sj){   # 1. Weihnachtstag
      if (Day_of_Week($jahr,$mon,$tg) == 1) {printf("\e[44m %2d  %2s     %2d\e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)],Week_Number($jahr,$mon,$tg));}
      else {printf("\e[44m %2d  %2s       \e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}}
   elsif (Day_of_Year($jahr,$mon,$tg) == 360+$sj){   # 2. Weihnachtstag
      if (Day_of_Week($jahr,$mon,$tg) == 1) {printf("\e[44m %2d  %2s     %2d\e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)],Week_Number($jahr,$mon,$tg));}
      else {printf("\e[44m %2d  %2s       \e[0m|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}}
   elsif (Day_of_Year($jahr,$mon,$tg) == 365+$sj){   # Silvester
      if (Day_of_Week($jahr,$mon,$tg) == 1) {printf("\e[44m %2d  %2s \e[0m    %2d|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)],Week_Number($jahr,$mon,$tg));}
      else {printf("\e[44m %2d  %2s \e[0m      |",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}}
   else {
      if (Day_of_Week($jahr,$mon,$tg) == 1) {printf(" %2d  %2s     %2d|",$tg,$tag[Day_of_Week($jahr,$mon,$tg)],Week_Number($jahr,$mon,$tg));}
      else {printf(" %2d  %2s       |",$tg,$tag[Day_of_Week($jahr,$mon,$tg)]);}}}
else {print "              |";}
};
print "\n|";
};
print "-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n";

ReadMode 'cbreak'; $key = ReadKey(0); ReadMode 'normal';
old/programmieren/perl/kalender.txt · Last modified: 2023/01/11 20:29 by 127.0.0.1

Except where otherwise noted, content on this wiki is licensed under the following license: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki