Math.round(); (при его активации не срабатывает условие...)
Здравствуйте!
Есть такой код:
function z (param1,param2,param3){
if (param1< 1001 && param1 > 0) {
var forTime = new Date();
var test = forTime.getTime() / (1000*60*60*24) + parseInt(param1);
var WeekDays = new Date(Math.round(test)*(24*60*60*1000));
//param1 = parseInt(Math.round(param1));
if (param1[param1.length-2] == 1 && param1> 99) {
param1 = param1+" дней ";
}
else if (param1[param1.length-1] == 1) {
param1 = param1+" день ";
}
else if (param1[param1.length-1] == 2 || param1[param1.length-1] == 3 || param1[param1.length-1] == 4) {
param1 = param1+" дня ";
}
else{
param1 = param1+" дней ";
}
alert("Через "+param1+"будет вот такая дата: "+"\n"+
"День недели: " + param2[WeekDays.getDay()]+"\n"+
"Число: " + WeekDays.getDate()+"-е"+"\n"+
"Месяц: " +param3[WeekDays.getMonth()]+"\n"+
"Год: " + WeekDays.getFullYear()+"-й"+"\n");
}
else{
alert("Ваши данные не соответствуют критериям ввода!"+"\n");
}
}
var answer = prompt("Введите число для определения будущей даты! \n (От 0 до 1000-чи...) ","Это будет: ")
var dayWeek = [" Воскресенье"," Понедельник"," Вторник"," Среда"," Четверг"," Пятница"," Суббота"];
var month = [" Январь"," Февраль"," Март"," Апрель"," Май"," Июнь"," Июль"," Август"," Сентябрь"," Октябрь"," Ноябрь"," Декабрь"]
z(answer,dayWeek,month);
Следующая строчка закоментирована поскольку при её активации не срабатывает условие связанное с изменением слова "день"!? //param1 = Math.round(param1); Вопрос: Как округлить полученные при вводе данные до целых чисел, с учетом если пользователь введёт дробные? (и что бы при этом окончания у слов "день" подвергались склонениям, как и ранее...) P.S. В JS новичек! Поэтому прошу за код меня сильно не бить... В заранее всем Очень Признателен за помощь! |
Цитата:
<input type="text" id="text" value="0.9" />
<input type="button" id="button" value="click" />
<script>
document.getElementById('button').onclick = function() {
alert(Math.round(document.getElementById('text').value));
};
</script>
Логический оператор И имеет эквивалент &&, а не &. Если вам нужно произвести арифметические операции со значением из поля ввода, то сперва значение нужно привести к целому типу, для этого достаточно добавить унарный + перед значением. |
Цитата:
|
Цитата:
alert(["1" + 1, +"1" + 1, parseInt("1") + 1, parseFloat("0.1") + 1].join('\n'));
|
Цитата:
Хотя не совсем ясно каким тогда образом срабатывает мое условие? Получается что я сравниваю строку с цифрой? (Но тем не менее это срабатывает до тех мор пока я не подключаю обьект math.round(); После этого условие не срабатывает... Сейчас я изменил закоментированую строку - но если её задействовать то все равно ничего не работает.. ) P.S. Хотя возможно я что то не так понял... |
Цитата:
var i = '10'; alert((i[i.length-2] == 1); Чего вы хотите достичь этим условием? param1[param1.length-2] == 1 && param1> 99 |
Огромное Спасибо! Теперь понял в чем моя ошибка...
Этим условием хотел достич того, что бы при цифре 111 было склонение: "Дней" вместо "День"! |
Перед тем как создавать тему пользуйтесь поиском, потому что ваша проблема не уникальна
А также прочтите о Plural Forms |
| Часовой пояс GMT +3, время: 21:47. |