You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.2 KiB
50 lines
1.2 KiB
import { Injectable } from '@angular/core'; |
|
import { addDays, differenceInDays, format } from 'date-fns'; |
|
|
|
@Injectable({ |
|
providedIn: 'root', |
|
}) |
|
export class DateUtilsService { |
|
public static addDaysToDate(days: number, date: Date): Date { |
|
return addDays(date, days); |
|
} |
|
|
|
public static diffInDays(dateLeft: Date, dateRight: Date): number { |
|
return differenceInDays(dateLeft, dateRight); |
|
} |
|
|
|
public static formatDate(date): string { |
|
return format(date, 'yyyy-MM-dd'); |
|
} |
|
|
|
public static orderDates(): Date[] { |
|
// TODO: to implement |
|
const datesOrdered: Date[] = []; |
|
return datesOrdered; |
|
} |
|
|
|
public static getDatesInRange(d1: Date, d2: Date, interval: number): Date[] { |
|
// TODO: refacto this |
|
d1 = new Date(d1); |
|
d2 = new Date(d2); |
|
const dates = []; |
|
while (+d1 < +d2) { |
|
dates.push({ |
|
literal: this.formateDate(d1), |
|
date_object: d1, |
|
}); |
|
d1.setDate(d1.getDate() + interval); |
|
} |
|
return [...dates]; |
|
} |
|
|
|
public static getDoubleDigits(str: string): string { |
|
// TODO: ça sert à quoi ça ? |
|
// Parce que ajouter 2 caractère à une string et ensuite slicer à partir du 2ème caractère, euh… |
|
return ('00' + str).slice(-2); |
|
} |
|
|
|
private isInChronologicalOrder(date1: Date, date2: Date): boolean { |
|
return date1 < date2; |
|
} |
|
}
|
|
|