Find the difference between the two dates. Add a given number of days to the date.
The DateTime class in Perl 6 defines the + and – operators, which can be used in combination with either another DateTime object or with the Duration object.
Let us first find the difference between the two given dates:
my $date1 = DateTime.new('2017-12-31T23:59:50');
my $date2 = DateTime.new('2018-01-01T00:00:10');
say $date2 - $date1; # 20
The type of the $date2 - $date1 expression is Duration. In the numeric context, it returns the number of seconds. Therefore, there are 20 seconds between our dates at hand.
A Duration object can also be used instead of the second DateTime object.
For example, increase the given date by two minutes:
my $now = DateTime.now();
my $when = $now + Duration.new(120);
say "$now -> $when";
Or learn what were the date and time a week ago:
my $back = $now - Duration.new(3600 * 24 * 7);
say $back;
In the current design of the language, the constructor of the Duration class needs a number of seconds.