Update app and ignore local artifacts
This commit is contained in:
34
lib/date.ts
Normal file
34
lib/date.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
export const dateKey = (date: Date) => `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`;
|
||||
|
||||
export const addDays = (date: Date, amount: number) => {
|
||||
const next = new Date(date);
|
||||
next.setDate(next.getDate() + amount);
|
||||
return next;
|
||||
};
|
||||
|
||||
export const mondayOfWeek = (date: Date) => addDays(date, -((date.getDay() + 6) % 7));
|
||||
|
||||
export const dateFromKey = (value: string) => new Date(`${value}T12:00:00`);
|
||||
|
||||
export const formatDayHeading = (date: Date) => new Intl.DateTimeFormat(undefined, { weekday: 'long', month: 'long', day: 'numeric' }).format(date);
|
||||
|
||||
export const formatMonthDay = (date: Date) => new Intl.DateTimeFormat(undefined, { month: 'long', day: 'numeric' }).format(date);
|
||||
|
||||
export const formatSessionDate = (value: string) => new Intl.DateTimeFormat(undefined, { weekday: 'short', month: 'short', day: 'numeric' }).format(dateFromKey(value));
|
||||
|
||||
export const currentMinutes = () => {
|
||||
const now = new Date();
|
||||
return now.getHours() * 60 + now.getMinutes();
|
||||
};
|
||||
|
||||
export const timeToMinutes = (value: string) => {
|
||||
const [hours, minutes] = value.split(':').map(Number);
|
||||
return Number.isFinite(hours) && Number.isFinite(minutes) ? hours * 60 + minutes : -1;
|
||||
};
|
||||
|
||||
export const greetingFor = (date = new Date()) => {
|
||||
const hour = date.getHours();
|
||||
if (hour < 12) return 'Good morning';
|
||||
if (hour < 18) return 'Good afternoon';
|
||||
return 'Good evening';
|
||||
};
|
||||
Reference in New Issue
Block a user