export interface TimeDelta { hours?: number; days?: number; months?: number; years?: number; } export function getUnixTimeInMicroSecondsWithDelta(delta: TimeDelta): number { let currentDate = new Date(); if (delta?.hours) { currentDate = _addHours(currentDate, delta.hours); } if (delta?.days) { currentDate = _addDays(currentDate, delta.days); } if (delta?.months) { currentDate = _addMonth(currentDate, delta.months); } if (delta?.years) { currentDate = _addYears(currentDate, delta.years); } return currentDate.getTime() * 1000; } function _addDays(date: Date, days: number): Date { const result = new Date(date); result.setDate(date.getDate() + days); return result; } function _addHours(date: Date, hours: number): Date { const result = new Date(date); result.setHours(date.getHours() + hours); return result; } function _addMonth(date: Date, months: number) { const result = new Date(date); result.setMonth(date.getMonth() + months); return result; } function _addYears(date: Date, years: number) { const result = new Date(date); result.setFullYear(date.getFullYear() + years); return result; }