UNPKG

cpt-waffle-lotide

Version:
52 lines (51 loc) 1.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const DAYS_IN_MONTH = [31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; const validMonth = (month) => month >= 1 && month <= 12; const validDay = (month, day) => { return day >= 1 && day <= DAYS_IN_MONTH[month - 1]; }; const calculateDayNumber = (month, day) => { let dayOfYear = day; for (let i = 1; i < month; i++) { dayOfYear += DAYS_IN_MONTH[i - 1]; } return dayOfYear; }; const isMultiple = (numerator, denominator) => { return numerator % denominator === 0; }; const isLeapYear = (year) => { const isMultipleFour = isMultiple(year, 4); const isMultipleOneHundred = isMultiple(year, 100); const isMultipleFourHundred = isMultiple(year, 400); if (!isMultipleFour) { return false; } else if (isMultipleFour && !isMultipleOneHundred) { return true; } else { if (isMultipleOneHundred && !isMultipleFourHundred) { return false; } else { return true; } } }; const calculateDayInYear = (date) => { const splitDate = date.split('/'); const [year, month, day] = splitDate.map((val) => Number(val)); DAYS_IN_MONTH[1] = isLeapYear(year) ? 29 : 28; if (validMonth(month) && validDay(month, day)) { const result = calculateDayNumber(month, day); console.log(date, "is day", result, "of the year", year); return result; } else { console.log("Invalid date"); return -1; } }; exports.default = calculateDayInYear;