summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--std/datetime/mod.ts5
-rw-r--r--std/datetime/test.ts18
2 files changed, 12 insertions, 11 deletions
diff --git a/std/datetime/mod.ts b/std/datetime/mod.ts
index 6bc947648..2afddbe6f 100644
--- a/std/datetime/mod.ts
+++ b/std/datetime/mod.ts
@@ -49,15 +49,16 @@ export function format(date: Date, formatString: string): string {
export function dayOfYear(date: Date): number {
// Values from 0 to 99 map to the years 1900 to 1999. All other values are the actual year. (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/Date)
// Using setFullYear as a workaround
+
const yearStart = new Date(date);
- yearStart.setFullYear(date.getFullYear(), 0, 0);
+ yearStart.setUTCFullYear(date.getUTCFullYear(), 0, 0);
const diff = date.getTime() -
yearStart.getTime() +
(yearStart.getTimezoneOffset() - date.getTimezoneOffset()) * 60 * 1000;
+
return Math.floor(diff / DAY);
}
-
/**
* Get number of the week in the year (ISO-8601)
* @return Number of the week in year
diff --git a/std/datetime/test.ts b/std/datetime/test.ts
index fb3d71705..10de786b6 100644
--- a/std/datetime/test.ts
+++ b/std/datetime/test.ts
@@ -160,15 +160,15 @@ Deno.test({
assertEquals(datetime.dayOfYear(new Date("-000001-04-01")), 91);
assertEquals(datetime.dayOfYear(new Date("-000001-12-31")), 365);
- // // 400 BC tests (leap-year)
- assertEquals(datetime.dayOfYear(new Date("-00400-01-01")), 1);
- assertEquals(datetime.dayOfYear(new Date("-00400-01-15")), 15);
- assertEquals(datetime.dayOfYear(new Date("-00400-02-01")), 32);
- assertEquals(datetime.dayOfYear(new Date("-00400-02-15")), 46);
- assertEquals(datetime.dayOfYear(new Date("-00400-03-01")), 61);
- assertEquals(datetime.dayOfYear(new Date("-00400-03-15")), 75);
- assertEquals(datetime.dayOfYear(new Date("-00400-04-01")), 92);
- assertEquals(datetime.dayOfYear(new Date("-00400-12-31")), 366);
+ // 400 BC tests (leap-year)
+ assertEquals(datetime.dayOfYear(new Date("-000400-01-01")), 1);
+ assertEquals(datetime.dayOfYear(new Date("-000400-01-15")), 15);
+ assertEquals(datetime.dayOfYear(new Date("-000400-02-01")), 32);
+ assertEquals(datetime.dayOfYear(new Date("-000400-02-15")), 46);
+ assertEquals(datetime.dayOfYear(new Date("-000400-03-01")), 61);
+ assertEquals(datetime.dayOfYear(new Date("-000400-03-15")), 75);
+ assertEquals(datetime.dayOfYear(new Date("-000400-04-01")), 92);
+ assertEquals(datetime.dayOfYear(new Date("-000400-12-31")), 366);
// Special Cases