@chce/weeknumber-iso8601
Version:
Function to calculate the week number of a given date
37 lines (32 loc) • 1.21 kB
text/typescript
import { getWeekNumberISO8601 } from "./index";
const weekInMilliseconds = 1000 * 60 * 60 * 24 * 7;
describe('Test of JobnetDateUtils', () => {
it('Correctly calculates first week of 2024', () => {
const weekNumber = getWeekNumberISO8601(new Date(2024, 0, 1));
expect(weekNumber).toBe(1);
});
it('Correctly calculates week 53 in 2024', () => {
const weekNumber = getWeekNumberISO8601(
new Date(2024, 11, 31)
);
expect(weekNumber).toBe(53);
});
it('Correctly assigns previous year weeks if first weekday >= friday', () => {
const weekNumber = getWeekNumberISO8601(new Date(2027, 0, 1));
expect(weekNumber).toBe(53);
});
it('Correctly calculates every week number in 2024', () => {
const firstWeekNumber = getWeekNumberISO8601(
new Date(2024, 0, 4)
); // First thursday of 2024
for (
let date = new Date(2024, 0, 4), expectedWeek = firstWeekNumber;
date.getFullYear() === 2024;
date.setTime(date.getTime() + weekInMilliseconds), expectedWeek++
) {
// Every thursday
const weekNumber = getWeekNumberISO8601(date);
expect(weekNumber).toBe(expectedWeek);
}
});
});