Comparing version 2.0.18 to 2.0.19
@@ -49,3 +49,3 @@ import { Date } from "./Date"; | ||
function getMillisecond(time: DateTime): number; | ||
function span(time: DateTime, relative: DateTime): TimeSpan; | ||
function span(time: DateTime, relative: DateTime, greatestUnit?: "years" | "hours" | "minutes" | "seconds" | "milliseconds"): TimeSpan; | ||
const epochStart: "0000-01-01T00:00:00.000Z"; | ||
@@ -52,0 +52,0 @@ const epochEnd: "9999-12-31T23:59:59.999Z"; |
@@ -363,10 +363,36 @@ import { Date } from "./Date"; | ||
DateTime.getMillisecond = getMillisecond; | ||
function span(time, relative) { | ||
return { | ||
...Date.span(time, relative), | ||
hours: getHour(time) - getHour(relative), | ||
minutes: getMinute(time) - getMinute(relative), | ||
seconds: getSecond(time) - getSecond(relative), | ||
milliseconds: getMillisecond(time) - getMillisecond(relative), | ||
}; | ||
function span(time, relative, greatestUnit = "years") { | ||
let result; | ||
if (greatestUnit == "years") { | ||
result = { | ||
...Date.span(time, relative), | ||
hours: getHour(time) - getHour(relative), | ||
minutes: getMinute(time) - getMinute(relative), | ||
seconds: getSecond(time) - getSecond(relative), | ||
milliseconds: getMillisecond(time) - getMillisecond(relative), | ||
}; | ||
} | ||
else { | ||
let milliseconds = epoch(time, "milliseconds") - epoch(relative, "milliseconds"); | ||
const sign = Math.sign(milliseconds); | ||
milliseconds = Math.abs(milliseconds); | ||
result = {}; | ||
switch (greatestUnit) { | ||
case "hours": | ||
result.hours = sign * Math.floor(milliseconds / (3600 * 1000)); | ||
milliseconds -= sign * result.hours * 3600 * 1000; | ||
// Fallthrough... | ||
case "minutes": | ||
result.minutes = sign * Math.floor(milliseconds / (60 * 1000)); | ||
milliseconds -= sign * result.minutes * 60 * 1000; | ||
// Fallthrough... | ||
case "seconds": | ||
result.seconds = sign * Math.floor(milliseconds / 1000); | ||
milliseconds -= sign * result.seconds * 1000; | ||
// Fallthrough... | ||
case "milliseconds": | ||
result.milliseconds = sign * milliseconds; | ||
} | ||
} | ||
return result; | ||
} | ||
@@ -373,0 +399,0 @@ DateTime.span = span; |
@@ -18,3 +18,5 @@ export var TimeZoneOffset; | ||
"-01:00", | ||
"-00:00", | ||
"Z", | ||
"+00:00", | ||
"+01:00", | ||
@@ -21,0 +23,0 @@ "+02:00", |
{ | ||
"name": "isoly", | ||
"version": "2.0.18", | ||
"version": "2.0.19", | ||
"description": "Datatypes and functions specified by ISO-standards.", | ||
@@ -5,0 +5,0 @@ "author": "Utily Contributors", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
914066
18845