Leser: 20
1 2 3
my $heute = '19.12.2009'; my $wochenstart = join ('.', reverse Add_Delta_YMD (reverse (split /\./,$heute),0,0,-(Day_of_Week (reverse split /\./,$heute) - 1))); print "Wochenstart: >$wochenstart<\n";
QuoteKlappt hervorragend aber ist das wirklich so einfach?
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
#!/usr/bin/env perl # Core Modules use strict; use warnings; use utf8; use open ':encoding(UTF-8)'; use open ':std'; use DateTime; use DateTime::Format::Strptime; # Wochenstart im America/Chicago my $parser = DateTime::Format::Strptime->new( pattern => '%d.%m.%Y', locale => 'en_US', time_zone => 'America/Chicago', ); my $dt = $parser->parse_datetime('19.12.2009'); my $offset = $dt->local_day_of_week; $dt->subtract( days => $offset-1 ); print "In America/Chicago ist der Wochenstart der ", $dt->dmy('.'), "\n"; # Wochenstart in Europe/Berlin my $parser2 = DateTime::Format::Strptime->new( pattern => '%d.%m.%Y', locale => 'de_DE', time_zone => 'Europe/Berlin', ); my $dt2 = $parser2->parse_datetime('19.12.2009'); my $offset2 = $dt2->local_day_of_week; $dt2->subtract( days => $offset2-1 ); print "In Europe/Berlin ist der Wochenstart der ", $dt2->dmy('.'), "\n";
1
2
In America/Chicago ist der Wochenstart der 13.12.2009
In Europe/Berlin ist der Wochenstart der 14.12.2009
QuoteDanke Euch!