diff --git a/labs/lab11/desc.json b/labs/lab11/desc.json index 2c28b3d..c8e8047 100644 --- a/labs/lab11/desc.json +++ b/labs/lab11/desc.json @@ -1,14 +1,21 @@ { "number": 11, - "task": "", + "task": "Создайте функцию, которая возвращает количество пятниц, 13-го числа в заданном году.", "vars": [ [ { - "name": "", - "desc": "", + "name": "year", + "desc": "Исследуемый год", "data": "" } + ], + [ + { + "name": "year", + "desc": "Исследуемый год", + "data": "2021" + } ] ], - "complete": false -} \ No newline at end of file + "complete": true +} diff --git a/labs/lab11/main.js b/labs/lab11/main.js index 466be91..3fa69a0 100644 --- a/labs/lab11/main.js +++ b/labs/lab11/main.js @@ -3,5 +3,31 @@ function main(formName) { let result = document.getElementById("result"); - result.textContent = "Результат: неопределенно"; + let year = document.forms[formName].elements[0].value; + if (isNotNumber(year)) { + result.textContent = "Ошибка: year не является числом!"; + return; + } + + if (!Number.isInteger(Number(year))) { + result.textContent = "Ошибка: year должен быть целым!"; + return; + } + + result.textContent = "Результат: " + countFridays(year); +} + +function countFridays(year) { + let result = 0; + + for (let month = 1; month <= 12; month++) { + let date = new Date(year, month, 13); + result += date.getDay() == 5 ? 1 : 0; + } + + return result; +} + +function isNotNumber(val) { + return val.replace(/\s/g, '').length === 0 || isNaN(val); }