From 9a581e4da6febf7234aa93329672b7646817414c Mon Sep 17 00:00:00 2001 From: Halyna Romanyshyn <30292604+halyna1995@users.noreply.github.com> Date: Mon, 26 Jan 2026 22:26:50 +0100 Subject: [PATCH 1/2] All tasks are complete --- task-1/book.js | 25 ++++++++- task-2/parse-date.js | 29 +++++++++- task-3/date.js | 23 ++++++++ task-4/cleanup.js | 126 ++++++++++++++++++------------------------- 4 files changed, 128 insertions(+), 75 deletions(-) create mode 100644 task-3/date.js diff --git a/task-1/book.js b/task-1/book.js index 8b49ecc..633f212 100644 --- a/task-1/book.js +++ b/task-1/book.js @@ -1,3 +1,26 @@ function isBookApplicable(searchString) { - // Your code here + const title = "The fundamentals of JavaScript"; + const inputText = normalizeText(searchString); + if (inputText.length === 0) return false; + const normalizedTitle = normalizeText(title); + return normalizedTitle.includes(inputText); } + +function normalizeText(s) { + return String(s).trim().toLowerCase().replace(/\s+/g, " "); + } + +console.log(isBookApplicable("javascript")); +// Output: true + +console.log(isBookApplicable("javascript ")); +// Output: true + +console.log(isBookApplicable("python")); +// Output: false + +console.log(isBookApplicable("JavaScript")); +// Output: true + +console.log(isBookApplicable("JAVASCRIPT")); +// Output: true \ No newline at end of file diff --git a/task-2/parse-date.js b/task-2/parse-date.js index 877a3aa..a80b924 100644 --- a/task-2/parse-date.js +++ b/task-2/parse-date.js @@ -1 +1,28 @@ -// Your code here +function parseDateString(dateString) { + const [format, datePart] = String(dateString).trim().split(/\s+/); + const numbers = datePart.split("-").map(Number); + + let day, month, year; + + if (format === "MDY") { + [month, day, year] = numbers; // Month-Day-Year + } else if (format === "DMY") { + [day, month, year] = numbers; // Day-Month-Year + } else { + throw new Error("Unknown date format. Expected 'MDY' or 'DMY'."); + } + + return { day, month, year }; +} +console.log(parseDateString("MDY 10-21-1983")); +// Output: { day: 21, month: 10, year: 1983 } + +console.log(parseDateString("DMY 21-10-1983")); +// Output: { day: 21, month: 10, year: 1983 } + +console.log(parseDateString("MDY 03-15-2024")); +// Output: { day: 15, month: 3, year: 2024 } + +console.log(parseDateString("DMY 15-03-2024")); +// Output: { day: 15, month: 3, year: 2024 } + diff --git a/task-3/date.js b/task-3/date.js new file mode 100644 index 0000000..accff57 --- /dev/null +++ b/task-3/date.js @@ -0,0 +1,23 @@ +export function convertHoursToMinutes(hours){ + return hours * 60; +} + +export function convertMinutesToHours(minutes){ + return minutes / 60; +} + +export function convertDaysToHours(days){ + return days * 24; +} + +export function convertHoursToDays(hours){ + return hours / 24; +} + +export function convertMinutesToSeconds(minutes){ + return minutes * 60; +} + +export function convertSecondsToMinutes(seconds){ + return seconds / 60; +} \ No newline at end of file diff --git a/task-4/cleanup.js b/task-4/cleanup.js index 207523a..de7ffde 100644 --- a/task-4/cleanup.js +++ b/task-4/cleanup.js @@ -1,80 +1,60 @@ -// Temperature conversion and weather report for City 1 -let cityName1 = "Amsterdam"; -let tempCelsius1 = 22; -let tempFahrenheit1 = (tempCelsius1 * 9 / 5) + 32; -let tempKelvin1 = tempCelsius1 + 273.15; -console.log("Weather Report for " + cityName1); -console.log("Temperature: " + tempCelsius1 + "°C"); -console.log("Temperature: " + tempFahrenheit1 + "°F"); -console.log("Temperature: " + tempKelvin1 + "K"); -if (tempCelsius1 < 0) { - console.log("Status: Freezing"); -} else if (tempCelsius1 >= 0 && tempCelsius1 < 10) { - console.log("Status: Cold"); -} else if (tempCelsius1 >= 10 && tempCelsius1 < 20) { - console.log("Status: Mild"); -} else if (tempCelsius1 >= 20 && tempCelsius1 < 30) { - console.log("Status: Warm"); -} else { - console.log("Status: Hot"); +// Converts a temperature from Celsius (°C) to Fahrenheit (°F). +function celsiusToFahrenheit(c) { + return (c * 9) / 5 + 32; } -console.log("---"); - -// Temperature conversion and weather report for City 2 -let cityName2 = "Berlin"; -let tempCelsius2 = 15; -let tempFahrenheit2 = (tempCelsius2 * 9 / 5) + 32; -let tempKelvin2 = tempCelsius2 + 273.15; -console.log("Weather Report for " + cityName2); -console.log("Temperature: " + tempCelsius2 + "°C"); -console.log("Temperature: " + tempFahrenheit2 + "°F"); -console.log("Temperature: " + tempKelvin2 + "K"); -if (tempCelsius2 < 0) { - console.log("Status: Freezing"); -} else if (tempCelsius2 >= 0 && tempCelsius2 < 10) { - console.log("Status: Cold"); -} else if (tempCelsius2 >= 10 && tempCelsius2 < 20) { - console.log("Status: Mild"); -} else if (tempCelsius2 >= 20 && tempCelsius2 < 30) { - console.log("Status: Warm"); -} else { - console.log("Status: Hot"); +// Converts a temperature from Celsius (°C) to Kelvin (K). +function celsiusToKelvin(c) { + return c + 273.15; +} +// Returns a human-readable weather status string based on the Celsius temperature. +function getTemperatureStatus(c) { + if (c < 0) return "Freezing"; + if (c >= 0 && c < 10) return "Cold"; + if (c >= 10 && c < 20) return "Mild"; + if (c >= 20 && c < 30) return "Warm"; + return "Hot"; +} +// Calculates the wind chill (feels-like temperature) in Celsius using the given air temperature (tempCelsius) and wind speed (windSpeed). +function calculateWindChill(tempCelsius, windSpeed) { + return ( + 13.12 + + 0.6215 * tempCelsius - + 11.37 * Math.pow(windSpeed, 0.16) + + 0.3965 * tempCelsius * Math.pow(windSpeed, 0.16) + ); } -console.log("---"); +// Prints a weather report for a single city: +function printWeatherReport(cityName, tempCelsius) { + const tempF = celsiusToFahrenheit(tempCelsius); + const tempK = celsiusToKelvin(tempCelsius); -// Temperature conversion and weather report for City 3 -let cityName3 = "Copenhagen"; -let tempCelsius3 = -5; -let tempFahrenheit3 = (tempCelsius3 * 9 / 5) + 32; -let tempKelvin3 = tempCelsius3 + 273.15; -console.log("Weather Report for " + cityName3); -console.log("Temperature: " + tempCelsius3 + "°C"); -console.log("Temperature: " + tempFahrenheit3 + "°F"); -console.log("Temperature: " + tempKelvin3 + "K"); -if (tempCelsius3 < 0) { - console.log("Status: Freezing"); -} else if (tempCelsius3 >= 0 && tempCelsius3 < 10) { - console.log("Status: Cold"); -} else if (tempCelsius3 >= 10 && tempCelsius3 < 20) { - console.log("Status: Mild"); -} else if (tempCelsius3 >= 20 && tempCelsius3 < 30) { - console.log("Status: Warm"); -} else { - console.log("Status: Hot"); + console.log("Weather Report for " + cityName); + console.log("Temperature: " + tempCelsius + "°C"); + console.log("Temperature: " + tempF + "°F"); + console.log("Temperature: " + tempK + "K"); + console.log("Status: " + getTemperatureStatus(tempCelsius)); + console.log("---"); +} +// Prints the wind chill for a single city. +function printWindChill(cityName, tempCelsius, windSpeed) { + const windChill = calculateWindChill(tempCelsius, windSpeed); + console.log( + "Wind chill in " + cityName + ": " + windChill.toFixed(2) + "°C" + ); } -console.log("---"); -// Wind chill calculation for City 1 -let windSpeed1 = 15; -let windChill1 = 13.12 + 0.6215 * tempCelsius1 - 11.37 * Math.pow(windSpeed1, 0.16) + 0.3965 * tempCelsius1 * Math.pow(windSpeed1, 0.16); -console.log("Wind chill in " + cityName1 + ": " + windChill1.toFixed(2) + "°C"); +const cities = [ + { name: "Amsterdam", tempC: 22, wind: 15 }, + { name: "Berlin", tempC: 15, wind: 20 }, + { name: "Copenhagen", tempC: -5, wind: 25 }, + { name: "Lviv", tempC: 2, wind: 10 }, + { name: "Strasbourg", tempC: 6, wind: 10 }, +]; -// Wind chill calculation for City 2 -let windSpeed2 = 20; -let windChill2 = 13.12 + 0.6215 * tempCelsius2 - 11.37 * Math.pow(windSpeed2, 0.16) + 0.3965 * tempCelsius2 * Math.pow(windSpeed2, 0.16); -console.log("Wind chill in " + cityName2 + ": " + windChill2.toFixed(2) + "°C"); +for (const c of cities) { + printWeatherReport(c.name, c.tempC); +} -// Wind chill calculation for City 3 -let windSpeed3 = 25; -let windChill3 = 13.12 + 0.6215 * tempCelsius3 - 11.37 * Math.pow(windSpeed3, 0.16) + 0.3965 * tempCelsius3 * Math.pow(windSpeed3, 0.16); -console.log("Wind chill in " + cityName3 + ": " + windChill3.toFixed(2) + "°C"); \ No newline at end of file +for (const c of cities) { + printWindChill(c.name, c.tempC, c.wind); +} From 35ef3d40cbf13092a8ff0512b251160f6391a759 Mon Sep 17 00:00:00 2001 From: Halyna Romanyshyn <30292604+halyna1995@users.noreply.github.com> Date: Sun, 1 Feb 2026 11:17:55 +0100 Subject: [PATCH 2/2] Make code nice to read --- task-1/book.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/task-1/book.js b/task-1/book.js index 633f212..cbd3146 100644 --- a/task-1/book.js +++ b/task-1/book.js @@ -8,7 +8,7 @@ function isBookApplicable(searchString) { function normalizeText(s) { return String(s).trim().toLowerCase().replace(/\s+/g, " "); - } +} console.log(isBookApplicable("javascript")); // Output: true @@ -23,4 +23,4 @@ console.log(isBookApplicable("JavaScript")); // Output: true console.log(isBookApplicable("JAVASCRIPT")); -// Output: true \ No newline at end of file +// Output: true