Documentation for routine infix:<->

Documentation for routine infix:<->, assembled from the following types:

class Date

From Date

(Date) sub infix:<->

multi sub infix:<-> (Date:DInt:D --> Date:D)
multi sub infix:<-> (Date:DDate:D --> Int:D)

Takes a date to subtract from and either an Int, representing the number of days to subtract, or another Date object. Returns a new Date object or the number of days between the two dates, respectively.

say Date.new('2016-12-25'- Date.new('2016-12-24'); # OUTPUT: «1␤» 
say Date.new('2015-12-25'- Date.new('2016-11-21'); # OUTPUT: «-332␤» 
say Date.new('2016-11-21'- 332;                    # OUTPUT: «2015-12-25␤» 

class DateTime

From DateTime

(DateTime) sub infix:<->

multi sub infix:<-> (DateTime:DDuration:D --> DateTime:D)
multi sub infix:<-> (DateTime:DDateTime:D --> Duration:D)

Takes a DateTime to subtract from and either a Duration or another DateTime object. Returns a new DateTime object or the Duration between the two dates, respectively. When subtracting Duration, timezone of the original DateTime is preserved in the returned DateTime object.

say perl DateTime.new(:2016year) - DateTime.new(:2015year):;           # OUTPUT: «Duration.new(31536001.0)␤» 
say DateTime.new(:2016year, :3600timezone) - Duration.new(31536001.0); # OUTPUT: «2015-01-01T00:00:00+01:00␤»