проблема з типами
не подкажете где ошибка ?
есть подозрение что переменние month2,day2,year2-строчки.Я решил их умножить на 1 чтоби преоброзовать в число, но не получается.:blink: И да я знаю что ето неполноценний и неправильний таймер:yes:
<HTML>
<HEAD>
</HEAD>
<BODY onload="now();">
<br>
<SCRIPT>
nown = new Date();
var monthlessn = nown.getMonth() + 1;
document.write("Сьогодні " + nown.getDate() + "-го " + monthlessn + " Місяць " + nown.getFullYear() + " рік " + nown.getHours() + " година ")
function go()
{
now = new Date();
var day2 = 0;
var day = 0;
var dayless = now.getDate();
var month2 = 0;
var month = 0;
var monthless = monthlessn;
var year2 = 0;
var year = 0;
var yearless = now.getFullYear();
month2 == (month*1)-monthless;
day2 == (day*1)-dayless;
year2 == (year*1)-yearless;
alert(day2 + " днів " + month2 + " місяців " + year2 + "рокiв")
}
</SCRIPT>
<br>
<br>
Введіть день :
<select onChange="day=+this.value;alert(day)">
<option value="1" selected="selected">1
</option>
<option value="2">2
</option>
<option value="3">3
</option>
<option value="4">4
</option>
<option value="5">5
</option>
<option value="6">6
</option>
<option value="7">7
</option>
<option value="8">8
</option>
<option value="9">9
</option>
<option value="10">10
</option>
<option value="11">11
</option>
<option value="12">12
</option>
<option value="13">13
</option>
<option value="14">14
</option>
<option value="15">15
</option>
<option value="16">16
</option>
<option value="17">17
</option>
<option value="18">18
</option>
<option value="19">19
</option>
<option value="20">20
</option>
<option value="21">21
</option>
<option value="22">22
</option>
<option value="23">23
</option>
<option value="24">24
</option>
<option value="25">25
</option>
<option value="26">26
</option>
<option value="27">27
</option>
<option value="28">28
</option>
<option value="29">29
</option>
<option value="30">30
</option>
<option value="31">31
</option>
</select>
Введіть місяць :
<select onChange="month=+this.value;alert(month)">
<option value="1" selected="selected">Січень
</option>
<option value="2">Лютий
</option>
<option value="3">Березень
</option>
<option value="4">Квітень
</option>
<option value="5">Травень
</option>
<option value="6">Червень
</option>
<option value="7">Липень
</option>
<option value="8">Серпень
</option>
<option value="9">Вересень
</option>
<option value="10">Жовтень
</option>
<option value="11">Листопад
</option>
<option value="12">Грудень
</option>
</select>
Введіть рік :
<select onChange="year=+this.value;alert(year)">
<option value="2013" selected="selected">2013
</option>
<option value="2014">2014
</option>
<option value="2015">2015
</option>
<option value="2016">2016
</option>
<option value="2017">2017
</option>
<option value="2018">2018
</option>
<option value="2019">2019
</option>
<option value="2020">2020
</option>
<option value="2021">2021
</option>
<option value="2022">2022
</option>
<option value="2023">2023
</option>
<option value="2024">2024
</option>
</select>
<br>
<INPUT TYPE="button" VALUE="Розрахунок" onClick="go()">
<br>
</BODY>
</HTML>
|
Цитата:
|
Цитата:
|
Цитата:
var a = "12345"; alert([a, typeof a]); alert([~~a, typeof ~~a]); alert([+a, typeof +a]); alert([a >> 0, typeof (a >> 0)]); |
I_nub,
обьяви переменные которые меняешь вне функции -- будут они глобально видимы -- потом научишься внутря прятать. |
Цитата:
|
Цитата:
var a = "3.14159"; alert([a, typeof a]); alert([~~a, typeof ~~a]); alert([+a, typeof +a]); alert([a >> 0, typeof (a >> 0)]); хотя в данном конкретном случае это не существенно, числа и так целые. |
Я недавно узнал еще такой способ:
var a = "3.14159"; alert([a|0, typeof (a|0)]); |
Все битовые операции (&, |, ^, ~, сдвиги) делают следующее:
1. Преобразуют операнд (в нашем случае строка) в число. 2. У полученного числа отбрасывают дробную часть, а от целой части оставляют только 32 младших бита, старшие отбрасывают. 3. С полученным числом делают указанную операцию. 4. Результат трактуется как 32-битное целое со знаком. Желающие могут поэкспериментировать, для экспериментов взять числа два миллиарда (с ним все будет нормально), три миллиарда (а вот оно уже в 31 бит не помещается, а значит будет единичка в бите, который трактуется как знаковый), пять миллиардов (оно в 32 бита не влазит никак). Наверно, лучше все-же пользоваться плюсом, битовые операции не только теряют дробную часть, но и делают ненужные действия, даже если сами по себе битовые операции быстрые, то преобразование числа из плавающего формата в целый и затем обратно - дополнительная потеря времени. Хотя сам ничего не замерял, так что рассуждения чисто теоретические :-) |
| Часовой пояс GMT +3, время: 03:58. |