Perl :: Aufgabe #53 :: Lösung #1
3 Lösungen
#53
Bei Addition von Tage nur Werktage beachten
Anfänger - Perl
von Gustl
- 22.07.2013 um 11:04 Uhr
Schreibe ein Programm welches die Anzahl der addierenden Tage abfrägt und dann das Datum ausgibt.
Bei der Addition der Tage sollen aber nur die Werktage (Geschäftstage): Montag, Dienstag, Mittwoch, Donnerstag und Freitag beachtet werden.
Beispiel: Heute ist der 22.07. (Montag), wenn ich nun 7 Tage eingebe soll der 31.07. (Mittwoch) ausgegeben werden.
Bei der Addition der Tage sollen aber nur die Werktage (Geschäftstage): Montag, Dienstag, Mittwoch, Donnerstag und Freitag beachtet werden.
Beispiel: Heute ist der 22.07. (Montag), wenn ich nun 7 Tage eingebe soll der 31.07. (Mittwoch) ausgegeben werden.
#1
von Gustl (6560 Punkte)
- 22.07.2013 um 11:13 Uhr
use strict;
use POSIX;
print "Wie viele Werktage sollen addiert werden (Startdatum Heute):\t";
my $days_add = <STDIN>;
chomp $days_add;
print "Tag (addiert mit $days_add Werktage): ".get_time( get_add_day(time, $days_add) );
sub get_add_day{
my $start_time = shift;
my $adddays = shift;
foreach(1..$adddays){
$start_time += 24 * 60 * 60; # addiert einen Tag
while(!is_week_day($start_time)){ # wenn der Tag kein Werktag ist -> addiere einen Tag
$start_time += 24 * 60 * 60;
}
}
return $start_time;
}
sub is_week_day{
my $time = shift;
my $Wochentag = (localtime($time))[6]; # liest den wochentag aus 0 ist Sonntag 6 ist Samstag
if($Wochentag == 0 || $Wochentag == 6){
return 0;
}
return 1;
}
sub get_time{
return strftime "%d.%m.%Y", localtime(shift);
}Bei dieser Lösung ist die Sommerzeit, Winterzeit sowie die Schaltjahre nicht berücksichtigt.
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
