summaryrefslogtreecommitdiff
path: root/std/datetime
diff options
context:
space:
mode:
Diffstat (limited to 'std/datetime')
-rw-r--r--std/datetime/mod.ts49
-rw-r--r--std/datetime/test.ts22
2 files changed, 35 insertions, 36 deletions
diff --git a/std/datetime/mod.ts b/std/datetime/mod.ts
index 9665a92b2..fe6fe6b3c 100644
--- a/std/datetime/mod.ts
+++ b/std/datetime/mod.ts
@@ -71,7 +71,7 @@ export type DateTimeFormat =
*/
export function parseDateTime(
datetimeStr: string,
- format: DateTimeFormat
+ format: DateTimeFormat,
): Date {
let m, d, y, ho, mi: string;
let datePattern: RegExp;
@@ -114,8 +114,7 @@ export function parseDateTime(
*/
export function dayOfYear(date: Date): number {
const yearStart = new Date(date.getFullYear(), 0, 0);
- const diff =
- date.getTime() -
+ const diff = date.getTime() -
yearStart.getTime() +
(yearStart.getTimezoneOffset() - date.getTimezoneOffset()) * 60 * 1000;
return Math.floor(diff / DAY);
@@ -135,13 +134,12 @@ export function currentDayOfYear(): number {
*/
export function weekOfYear(date: Date): number {
const workingDate = new Date(
- Date.UTC(date.getFullYear(), date.getMonth(), date.getDate())
+ Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()),
);
const day = workingDate.getUTCDay();
- const nearestThursday =
- workingDate.getUTCDate() +
+ const nearestThursday = workingDate.getUTCDate() +
Day.Thu -
(day === Day.Sun ? DAYS_PER_WEEK : day);
@@ -236,21 +234,19 @@ export type DifferenceOptions = {
export function difference(
from: Date,
to: Date,
- options?: DifferenceOptions
+ options?: DifferenceOptions,
): DifferenceFormat {
- const uniqueUnits = options?.units
- ? [...new Set(options?.units)]
- : [
- "miliseconds",
- "seconds",
- "minutes",
- "hours",
- "days",
- "weeks",
- "months",
- "quarters",
- "years",
- ];
+ const uniqueUnits = options?.units ? [...new Set(options?.units)] : [
+ "miliseconds",
+ "seconds",
+ "minutes",
+ "hours",
+ "days",
+ "weeks",
+ "months",
+ "quarters",
+ "years",
+ ];
const bigger = Math.max(from.getTime(), to.getTime());
const smaller = Math.min(from.getTime(), to.getTime());
@@ -285,14 +281,14 @@ export function difference(
differences.quarters = Math.floor(
(typeof differences.months !== "undefined" &&
differences.months / 4) ||
- calculateMonthsDifference(bigger, smaller) / 4
+ calculateMonthsDifference(bigger, smaller) / 4,
);
break;
case "years":
differences.years = Math.floor(
(typeof differences.months !== "undefined" &&
differences.months / 12) ||
- calculateMonthsDifference(bigger, smaller) / 12
+ calculateMonthsDifference(bigger, smaller) / 12,
);
break;
}
@@ -309,10 +305,13 @@ function calculateMonthsDifference(bigger: number, smaller: number): number {
const calendarDiffrences = Math.abs(yearsDiff * 12 + monthsDiff);
const compareResult = biggerDate > smallerDate ? 1 : -1;
biggerDate.setMonth(
- biggerDate.getMonth() - compareResult * calendarDiffrences
+ biggerDate.getMonth() - compareResult * calendarDiffrences,
);
- const isLastMonthNotFull =
- biggerDate > smallerDate ? 1 : -1 === -compareResult ? 1 : 0;
+ const isLastMonthNotFull = biggerDate > smallerDate
+ ? 1
+ : -1 === -compareResult
+ ? 1
+ : 0;
const months = compareResult * (calendarDiffrences - isLastMonthNotFull);
return months === 0 ? 0 : months;
}
diff --git a/std/datetime/test.ts b/std/datetime/test.ts
index a223abce2..d5dccee73 100644
--- a/std/datetime/test.ts
+++ b/std/datetime/test.ts
@@ -7,27 +7,27 @@ Deno.test({
fn: () => {
assertEquals(
datetime.parseDateTime("01-03-2019 16:30", "mm-dd-yyyy hh:mm"),
- new Date(2019, 0, 3, 16, 30)
+ new Date(2019, 0, 3, 16, 30),
);
assertEquals(
datetime.parseDateTime("03-01-2019 16:31", "dd-mm-yyyy hh:mm"),
- new Date(2019, 0, 3, 16, 31)
+ new Date(2019, 0, 3, 16, 31),
);
assertEquals(
datetime.parseDateTime("2019-01-03 16:32", "yyyy-mm-dd hh:mm"),
- new Date(2019, 0, 3, 16, 32)
+ new Date(2019, 0, 3, 16, 32),
);
assertEquals(
datetime.parseDateTime("16:33 01-03-2019", "hh:mm mm-dd-yyyy"),
- new Date(2019, 0, 3, 16, 33)
+ new Date(2019, 0, 3, 16, 33),
);
assertEquals(
datetime.parseDateTime("16:34 03-01-2019", "hh:mm dd-mm-yyyy"),
- new Date(2019, 0, 3, 16, 34)
+ new Date(2019, 0, 3, 16, 34),
);
assertEquals(
datetime.parseDateTime("16:35 2019-01-03", "hh:mm yyyy-mm-dd"),
- new Date(2019, 0, 3, 16, 35)
+ new Date(2019, 0, 3, 16, 35),
);
},
});
@@ -41,7 +41,7 @@ Deno.test({
(datetime as any).parseDateTime("2019-01-01 00:00", "x-y-z");
},
Error,
- "Invalid datetime format!"
+ "Invalid datetime format!",
);
},
});
@@ -51,15 +51,15 @@ Deno.test({
fn: () => {
assertEquals(
datetime.parseDate("01-03-2019", "mm-dd-yyyy"),
- new Date(2019, 0, 3)
+ new Date(2019, 0, 3),
);
assertEquals(
datetime.parseDate("03-01-2019", "dd-mm-yyyy"),
- new Date(2019, 0, 3)
+ new Date(2019, 0, 3),
);
assertEquals(
datetime.parseDate("2019-01-03", "yyyy-mm-dd"),
- new Date(2019, 0, 3)
+ new Date(2019, 0, 3),
);
},
});
@@ -73,7 +73,7 @@ Deno.test({
(datetime as any).parseDate("2019-01-01", "x-y-z");
},
Error,
- "Invalid date format!"
+ "Invalid date format!",
);
},
});