FriendlyTime.ts 2.7 Ko
Télécharger le fichier
import { LocalizeText } from './LocalizeText';
export class FriendlyTime {
private static MINUTE: number = 60;
private static HOUR: number = 60 * FriendlyTime.MINUTE;
private static DAY: number = 24 * FriendlyTime.HOUR;
private static WEEK: number = 7 * FriendlyTime.DAY;
private static MONTH: number = 30 * FriendlyTime.DAY;
private static YEAR: number = 365 * FriendlyTime.DAY;
public static format(seconds: number, key: string = '', threshold: number = 3): string {
if (seconds > threshold * FriendlyTime.YEAR) return FriendlyTime.getLocalization('friendlytime.years' + key, Math.round(seconds / FriendlyTime.YEAR));
if (seconds > threshold * FriendlyTime.MONTH)
return FriendlyTime.getLocalization('friendlytime.months' + key, Math.round(seconds / FriendlyTime.MONTH));
if (seconds > threshold * FriendlyTime.DAY) return FriendlyTime.getLocalization('friendlytime.days' + key, Math.round(seconds / FriendlyTime.DAY));
if (seconds > threshold * FriendlyTime.HOUR) return FriendlyTime.getLocalization('friendlytime.hours' + key, Math.round(seconds / FriendlyTime.HOUR));
if (seconds > threshold * FriendlyTime.MINUTE)
return FriendlyTime.getLocalization('friendlytime.minutes' + key, Math.round(seconds / FriendlyTime.MINUTE));
return FriendlyTime.getLocalization('friendlytime.seconds' + key, Math.round(seconds));
}
public static shortFormat(seconds: number, key: string = '', threshold: number = 3): string {
if (seconds > threshold * FriendlyTime.YEAR)
return FriendlyTime.getLocalization('friendlytime.years.short' + key, Math.round(seconds / FriendlyTime.YEAR));
if (seconds > threshold * FriendlyTime.MONTH)
return FriendlyTime.getLocalization('friendlytime.months.short' + key, Math.round(seconds / FriendlyTime.MONTH));
if (seconds > threshold * FriendlyTime.DAY)
return FriendlyTime.getLocalization('friendlytime.days.short' + key, Math.round(seconds / FriendlyTime.DAY));
if (seconds > threshold * FriendlyTime.HOUR)
return FriendlyTime.getLocalization('friendlytime.hours.short' + key, Math.round(seconds / FriendlyTime.HOUR));
if (seconds > threshold * FriendlyTime.MINUTE)
return FriendlyTime.getLocalization('friendlytime.minutes.short' + key, Math.round(seconds / FriendlyTime.MINUTE));
return FriendlyTime.getLocalization('friendlytime.seconds.short' + key, Math.round(seconds));
}
public static getLocalization(key: string, amount: number): string {
const amountValue = amount.toString();
return LocalizeText(key, ['amount', 'AMOUNT'], [amountValue, amountValue]);
}
}
