From 675cf4077295bdc2d19753fa6e319448437b2288 Mon Sep 17 00:00:00 2001 From: "dagimgit config --global user.email dagimvanhaileselassie@gmail.com" Date: Wed, 28 Jan 2026 16:31:19 +0100 Subject: [PATCH 1/2] Implement date conversion module --- task-1/book.js | 13 ++++- task-2/parse-date.js | 31 ++++++++++- task-3/date.js | 19 +++++++ task-4/cleanup.js | 120 +++++++++++++++---------------------------- 4 files changed, 102 insertions(+), 81 deletions(-) create mode 100644 task-3/date.js diff --git a/task-1/book.js b/task-1/book.js index 8b49ecc..4a01772 100644 --- a/task-1/book.js +++ b/task-1/book.js @@ -1,3 +1,14 @@ +const bookTitle = "The fundamentals of JavaScript"; + function isBookApplicable(searchString) { - // Your code here + const cleanSearch = searchString.trim().toLowerCase(); + const cleanTitle = bookTitle.toLowerCase(); + + return cleanTitle.includes(cleanSearch); } + +console.log(isBookApplicable("javascript")); +console.log(isBookApplicable("javascript ")); +console.log(isBookApplicable("python")); +console.log(isBookApplicable("JavaScript")); +console.log(isBookApplicable("JAVASCRIPT")); \ No newline at end of file diff --git a/task-2/parse-date.js b/task-2/parse-date.js index 877a3aa..a0702a8 100644 --- a/task-2/parse-date.js +++ b/task-2/parse-date.js @@ -1 +1,30 @@ -// Your code here +function parseDateString(dateString) { + + const parts = dateString.split(" "); + const format = parts[0]; + const dateValues = parts[1]; + const values = dateValues.split("-"); + + let d, m, y; + + if (format === "MDY") { + m = Number(values[0]); + d = Number(values[1]); + y = Number(values[2]); + } else { + d = Number(values[0]); + m = Number(values[1]); + y = Number(values[2]); + } + + return { + day: d, + month: m, + year: y + }; +} + +console.log(parseDateString("MDY 10-21-1983")); +console.log(parseDateString("DMY 21-10-1983")); +console.log(parseDateString("MDY 03-15-2024")); +console.log(parseDateString("DMY 15-03-2024")); \ No newline at end of file diff --git a/task-3/date.js b/task-3/date.js new file mode 100644 index 0000000..cf989c6 --- /dev/null +++ b/task-3/date.js @@ -0,0 +1,19 @@ +// Convert hours → minutes +export const convertHoursToMinutes = (hours) => { + return hours * 60; +}; +export const convertMinutesToHours = (minutes) => { + return minutes / 60; +}; +export const convertDaysToHours = (days) => { + return days * 24; +}; +export const convertHoursToDays = (hours) => { + return hours / 24; +}; +export const convertMinutesToSeconds = (minutes) => { + return minutes * 60; +}; +export const convertSecondsToMinutes = (seconds) => { + return seconds / 60; +}; diff --git a/task-4/cleanup.js b/task-4/cleanup.js index 207523a..65f3001 100644 --- a/task-4/cleanup.js +++ b/task-4/cleanup.js @@ -1,80 +1,42 @@ -// 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"); -} -console.log("---"); +// Conversion Functions +const toFahrenheit = (celsius) => (celsius * 9/5) + 32; +const toKelvin = (celsius) => celsius + 273.15; +// Weather Status Function +const getWeatherStatus = (celsius) => { + if (celsius < 0) return "Freezing"; + if (celsius < 10) return "Cold"; + if (celsius < 20) return "Mild"; + if (celsius < 30) return "Warm"; + return "Hot"; +}; +// Wind Chill Function +const calculateWindChill = (tempCelsius, windSpeed) => { + return ( + 13.12 + + 0.6215 * tempCelsius - + 11.37 * Math.pow(windSpeed, 0.16) + + 0.3965 * tempCelsius * Math.pow(windSpeed, 0.16) + ); +}; +// Main Weather Report Function +const printWeatherReport = (city, tempCelsius, windSpeed) => { + const fahrenheit = toFahrenheit(tempCelsius); + const kelvin = toKelvin(tempCelsius); + const status = getWeatherStatus(tempCelsius); + const windChill = calculateWindChill(tempCelsius, windSpeed); -// 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"); -} -console.log("---"); - -// 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("---"); - -// 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"); - -// 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"); - -// 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 + console.log(`Weather Report for ${city}`); + console.log(`Temperature: ${tempCelsius}°C`); + console.log(`Temperature: ${fahrenheit}°F`); + console.log(`Temperature: ${kelvin}K`); + console.log(`Status: ${status}`); + console.log(`Wind chill in ${city}: ${windChill.toFixed(2)}°C`); + console.log("---"); +}; +// Original 3 Cities +printWeatherReport("Amsterdam", 22, 15); +printWeatherReport("Berlin", 15, 20); +printWeatherReport("Copenhagen", -5, 25); +// Bonus: Add 2 More Cities +printWeatherReport("Madrid", 30, 10); +printWeatherReport("Oslo", -12, 18); From c5da2d144ae8343faebd00364e9ece3989deb296 Mon Sep 17 00:00:00 2001 From: "dagimgit config --global user.email dagimvanhaileselassie@gmail.com" Date: Wed, 28 Jan 2026 16:45:01 +0100 Subject: [PATCH 2/2] Implement date conversion module --- task-2/parse-date.js | 1 - 1 file changed, 1 deletion(-) diff --git a/task-2/parse-date.js b/task-2/parse-date.js index a0702a8..22a7d95 100644 --- a/task-2/parse-date.js +++ b/task-2/parse-date.js @@ -23,7 +23,6 @@ function parseDateString(dateString) { year: y }; } - console.log(parseDateString("MDY 10-21-1983")); console.log(parseDateString("DMY 21-10-1983")); console.log(parseDateString("MDY 03-15-2024"));