Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.03.2013, 21:00
Интересующийся
Отправить личное сообщение для I_nub Посмотреть профиль Найти все сообщения от I_nub
 
Регистрация: 28.02.2013
Сообщений: 23

проблема з типами
не подкажете где ошибка ?
есть подозрение что переменние month2,day2,year2-строчки.Я решил их умножить на 1 чтоби преоброзовать в число, но не получается.
И да я знаю что ето неполноценний и неправильний таймер

<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>
Ответить с цитированием
  #2 (permalink)  
Старый 14.03.2013, 21:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от I_nub
есть подозрение что переменние month2,day2,year2-строчки
есть подозрение что эти переменные внутри функции а там они как за каменной стеной недостучатся.Видимость однако называется.
Ответить с цитированием
  #3 (permalink)  
Старый 14.03.2013, 21:42
Интересующийся
Отправить личное сообщение для I_nub Посмотреть профиль Найти все сообщения от I_nub
 
Регистрация: 28.02.2013
Сообщений: 23

Сообщение от рони Посмотреть сообщение
есть подозрение что эти переменные внутри функции а там они как за каменной стеной недостучатся.Видимость однако называется.
И что посоветуеш ?
Ответить с цитированием
  #4 (permalink)  
Старый 14.03.2013, 21:43
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от I_nub
Я решил их умножить на 1 чтоби преоброзовать в число
для это умножать не нужно, способов море:
var a = "12345";
alert([a, typeof a]);

alert([~~a, typeof ~~a]);

alert([+a, typeof +a]);

alert([a >> 0, typeof (a >> 0)]);
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #5 (permalink)  
Старый 14.03.2013, 21:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

I_nub,
обьяви переменные которые меняешь вне функции -- будут они глобально видимы -- потом научишься внутря прятать.
Ответить с цитированием
  #6 (permalink)  
Старый 14.03.2013, 22:00
Интересующийся
Отправить личное сообщение для I_nub Посмотреть профиль Найти все сообщения от I_nub
 
Регистрация: 28.02.2013
Сообщений: 23

Сообщение от рони Посмотреть сообщение
I_nub,
обьяви переменные которые меняешь вне функции -- будут они глобально видимы -- потом научишься внутря прятать.
Спасибо.
Ответить с цитированием
  #7 (permalink)  
Старый 15.03.2013, 10:47
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Сообщение от devote Посмотреть сообщение
для это умножать не нужно, способов море:
Только надо не забывать, что только второй способ преобразует в "то же" число, первый и третий преобразует в 32-битное целое, т.е. отбрасывает дробную часть:
var a = "3.14159";
alert([a, typeof a]);

alert([~~a, typeof ~~a]);

alert([+a, typeof +a]);

alert([a >> 0, typeof (a >> 0)]);

хотя в данном конкретном случае это не существенно, числа и так целые.
Ответить с цитированием
  #8 (permalink)  
Старый 16.03.2013, 04:08
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Я недавно узнал еще такой способ:

var a = "3.14159";
alert([a|0, typeof (a|0)]);
Ответить с цитированием
  #9 (permalink)  
Старый 16.03.2013, 17:50
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Все битовые операции (&, |, ^, ~, сдвиги) делают следующее:
1. Преобразуют операнд (в нашем случае строка) в число.
2. У полученного числа отбрасывают дробную часть, а от целой части оставляют только 32 младших бита, старшие отбрасывают.
3. С полученным числом делают указанную операцию.
4. Результат трактуется как 32-битное целое со знаком.
Желающие могут поэкспериментировать, для экспериментов взять числа два миллиарда (с ним все будет нормально), три миллиарда (а вот оно уже в 31 бит не помещается, а значит будет единичка в бите, который трактуется как знаковый), пять миллиардов (оно в 32 бита не влазит никак).
Наверно, лучше все-же пользоваться плюсом, битовые операции не только теряют дробную часть, но и делают ненужные действия, даже если сами по себе битовые операции быстрые, то преобразование числа из плавающего формата в целый и затем обратно - дополнительная потеря времени. Хотя сам ничего не замерял, так что рассуждения чисто теоретические :-)

Последний раз редактировалось rgl, 16.03.2013 в 17:55.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с обработкой ескольких .hover() anocean jQuery 3 15.06.2012 22:43
Проблема с Popup окном vovuslik jQuery 5 12.06.2010 16:12
Проблема с CSS COKOJIOB (X)HTML/CSS 5 04.08.2009 14:19
Проблема, в менюшке Большой джо Элементы интерфейса 0 12.07.2009 17:12
Проблема спама lliberty AJAX и COMET 1 12.03.2009 16:47