We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
function calculateFine(dateReturned, dateDue) {
const returnedDate = new Date(dateReturned);
const dueDate = new Date(dateDue);
// Compare years
const yearsLate = returnedDate.getFullYear() - dueDate.getFullYear();
if (yearsLate > 0) return 10000;
if (yearsLate < 0) return 0;
// Compare months (only if same year)
const monthsLate = returnedDate.getMonth() - dueDate.getMonth();
if (monthsLate > 0) return monthsLate * 500;
if (monthsLate < 0) return 0;
// Compare days (only if same year and same month)
const daysLate = returnedDate.getDate() - dueDate.getDate();
if (daysLate > 0) return daysLate * 15;
Day 26: Nested Logic
You are viewing a single comment's thread. Return to all comments →
JavaScript Solution:
`
{month.padStart(2, "0")}-${day.padStart(2, "0")}
; }function calculateFine(dateReturned, dateDue) { const returnedDate = new Date(dateReturned); const dueDate = new Date(dateDue);
// Compare years const yearsLate = returnedDate.getFullYear() - dueDate.getFullYear(); if (yearsLate > 0) return 10000; if (yearsLate < 0) return 0;
// Compare months (only if same year) const monthsLate = returnedDate.getMonth() - dueDate.getMonth(); if (monthsLate > 0) return monthsLate * 500; if (monthsLate < 0) return 0;
// Compare days (only if same year and same month) const daysLate = returnedDate.getDate() - dueDate.getDate(); if (daysLate > 0) return daysLate * 15;
return 0; }
function processData(input) { const [returned, due] = input.split("\n"); const dateReturned = formatDateString(returned); const dateDue = formatDateString(due);
console.log(calculateFine(dateReturned, dateDue)); }