reconstruct
This commit is contained in:
parent
20002030ad
commit
ca8bded949
17 changed files with 1268 additions and 1110 deletions
22
services/time-helper.ts
Normal file
22
services/time-helper.ts
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
import { getISOWeek, getISODay, subYears, setISOWeek, setISODay, isValid } from 'date-fns';
|
||||
|
||||
export const getWeekNumber = (dateString: string): number => {
|
||||
const date = new Date(dateString);
|
||||
if (!isValid(date)) {
|
||||
throw new Error('Invalid date string provided.');
|
||||
}
|
||||
return getISOWeek(date);
|
||||
};
|
||||
|
||||
export const getSameWeekDayLastYear = (dateString: string): string => {
|
||||
const baseDate = new Date(dateString);
|
||||
if (!isValid(baseDate)) {
|
||||
throw new Error('Invalid date string provided.');
|
||||
}
|
||||
const originalWeek = getISOWeek(baseDate);
|
||||
const originalDayOfWeek = getISODay(baseDate);
|
||||
const lastYearDate = subYears(baseDate, 1);
|
||||
const dateWithWeekSet = setISOWeek(lastYearDate, originalWeek);
|
||||
const finalDate = setISODay(dateWithWeekSet, originalDayOfWeek);
|
||||
return finalDate.toISOString().split('T')[0]; // Return as YYYY-MM-DD
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue