Something went wrong. Try again.
A functional toolkit for authoring resource-leveling algorithms — compose constraint and scoring blocks, enumerate feasible schedules
Something went wrong. Try again.
1234567891011121314151617181920212223export function parseProjectDate(raw: string | null | undefined): Date | null { if (!raw) return null; const date = new Date(raw); return Number.isNaN(date.getTime()) ? null : date;}
export function formatProjectDate( value: Date | null | undefined,): string | null { if (!value) { return null; }
const year = value.getFullYear(); const month = String(value.getMonth() + 1).padStart(2, "0"); const day = String(value.getDate()).padStart(2, "0"); const hours = String(value.getHours()).padStart(2, "0"); const minutes = String(value.getMinutes()).padStart(2, "0"); const seconds = String(value.getSeconds()).padStart(2, "0");
return `${year}-${month}-${day}T${hours}:${minutes}:${seconds}`;}