Dates, Times and Durations

say now;                                  # Instant (TAI-based)
say time;                                 # POSIX epoch seconds (Int)
my $dt = DateTime.now;
say $dt;                                  # 2025-10-24T10:30:00.123456+05:30
say $dt.year, ' ', $dt.month, ' ', $dt.day, ' ', $dt.hour, ' ', $dt.minute, ' ', $dt.whole-second;
say $dt.day-of-week, ' ', $dt.day-of-year, ' ', $dt.week-number, ' ', $dt.is-leap-year;
say $dt.utc, ' ', $dt.in-timezone(3600);  # change the offset (seconds)
say $dt.posix, ' ', DateTime.new(0).Str;  # epoch conversion
say DateTime.new('2025-10-24T12:00:00Z');
say DateTime.new(year => 2025, month => 10, day => 24, hour => 9);
say $dt.later(days => 10), ' ', $dt.earlier(hours => 3);
say $dt.truncated-to('day');
say $dt.yyyy-mm-dd, ' ', $dt.hh-mm-ss;
say $dt.Date;

my $d = Date.today;
say $d, ' ', $d + 30, ' ', $d - 7;        # date arithmetic in days
say Date.new('2025-12-25') - Date.today;  # days until Christmas (an Int)
say Date.new(2025, 2, 1).days-in-month;   # 28
say Date.new('2025-10-24').day-of-week;   # 5 (Friday)
say Date.new('2025-01-31').later(months => 1);   # 2025-02-28
say (Date.new('2025-01-01') .. Date.new('2025-01-05')).list;

my $start
…