Files
mutiny-web/src/utils/subscriptions.ts
2023-11-20 15:38:25 -06:00

32 lines
1011 B
TypeScript

const GRACE = 60 * 60 * 24 * 3; // 3 days
export function subscriptionValid(subscriptionExpiresTimestamp?: number) {
if (!subscriptionExpiresTimestamp) return false;
return subscriptionExpiresTimestamp + GRACE > Math.ceil(Date.now() / 1000);
}
export function isFreeGiftingDay() {
const today = new Date();
// days are 1 indexed, months are 0 indexed
const isChristmas = today.getDate() === 25 && today.getMonth() === 11;
return isChristmas || isThanksgiving(today);
}
function isThanksgiving(today: Date) {
if (today.getMonth() !== 10) return false;
const year = today.getFullYear();
const thanksgivingDay = new Date(year, 10, 1);
// Find out what day of the week Nov 1 is
const dayOfWeek = thanksgivingDay.getDay();
// Calculate the date of the fourth Thursday in November
thanksgivingDay.setDate(1 + ((4 - dayOfWeek) % 7) + 3 * 7);
// Compare the current date with Thanksgiving date
return today.getDate() === thanksgivingDay.getDate();
}