===
indeed truncating to any day of the week can be implemented by user
trivially by adding/subtracting a constant number of days from the
Monday returned.
No, it's not a constant.
$sun = DateTime.new('2010-04-11').trunc( :to<sunday> ) # 2010-04-11
$mon = DateTime.new('2010-04-11').trunc( :to<monday> ) # 2010-04-05
$sun - $mon == 6 days
$sun = DateTime.new('2010-04-12').trunc( :to<sunday> ) # 2010-04-11
$mon = DateTime.new('2010-04-12').trunc( :to<monday> ) # 2010-04-12
$sun - $mon == -1 day
===
You're not understanding me right- the addition & subtraction have to
happen twice. (Ever had to truncate to an arbitrary multiple of 10 for
example?)
$sunday =DateTime.new(date_in_question+1 day).trunc( :to<monday>) - 1 day