1

特定の日付の次の月曜日の日付を返したいと思っています。指定された日付がすでに月曜日である場合、日付は同じままにする必要があります。

別の投稿から、DateTime を使用して特定の日付の前の月曜日を計算するスクリプトを見つけました。

use DateTime;

my $date = DateTime->new(year => 2011, month => 6, day => 11); 
my $desired_dow = 1;            # Monday 
$date->subtract(days => ($date->day_of_week - $desired_dow) % 7); 
print "$date\n";

(cjmのクレジット)

次の月曜日を計算するためにこれを変更する方法を見つけることができません(前の月曜日ではありません)。誰か助けてくれませんか?

4

3 に答える 3

3

変化する

$date->subtract(days => ($date->day_of_week - $desired_dow) % 7); 

$date->add(days => ($desired_dow - $date->day_of_week) % 7); 

または、必要に応じて、「古い」月曜日に 1 週​​間追加することもできます。

$date->subtract(days => ($date->day_of_week - $desired_dow) % 7); 
$date->add(days => 7); 
于 2012-05-01T06:46:08.397 に答える