import Duration, {NULL_DURATION, MS_DURATION, SECOND_DURATION, MINUTE_DURATION, HOUR_DURATION, DAY_DURATION, WEEK_DURATION} from "ts-time/Duration";
Comprises a fixed time interval in milliseconds. As opposed to Period, it can't comprise a variable-length interval such as month, because month duration varies from 28 to 31 days. Duration is mainly involved to manipulate Instant objects. In particular, ZonedDateTime.plusDuration method adds a duration to the respective instant, not date/time. It means that if you add DAY_DURATION to a ZonedDateTime, you may receive a different LocalTime if time zone offset changes during this day, while real time difference will truly be 24 hours:
const start = ZonedDateTime.parse("2019-10-27T00:00:00.000+02:00[Europe/Berlin]"), // Summer time end = start.plusDuration(DAY_DURATION); expect(end.toString()).toBe("2019-10-27T23:00:00.000+01:00[Europe/Berlin]"); // Winter time expect(end.epochMs - start.epochMs).toBe(24 * MS_PER_HOUR);
To ascertain the same LocalTime, you are supposed to add a Period.
readonly ms: number
(value: number | Duration): Duration
(value: number | Duration): Duration
(multiplier: number): Duration
(value: number | Duration): Duration
(ms: number): Duration
(seconds: number): Duration
(minutes: number): Duration
(hours: number): Duration
(days: number): Duration
(weeks: number): Duration
(days: number, hours: number = 0, minutes: number = 0, seconds: number = 0, ms: number = 0): Duration
NULL_DURATION: Duration
MS_DURATION: Duration
SECOND_DURATION: Duration
MINUTE_DURATION: Duration
HOUR_DURATION: Duration
DAY_DURATION: Duration
WEEK_DURATION: Duration