Помогите пожалуйста со скриптом подсчета!
Господа знающие, подскажите новичку. Вот есть у меня фиксированное число (допустим 133), и чтобы к этому числу ежедневно прибавлялось другое фиксированное число (допустим 529). И результат выводился на странице, постоянно изо дня в день суммируясь:) ... Подскажите как?...
|
Из Date получаем номер сегодняшнего дня, вычитаем из него номер начльного дня, умножаем на 529 и прибавляем 133.
|
Цитата:
<SCRIPT LANGUAGE="JavaScript"> var g_iCount = new Number(); var g_iCount = 1; function startCountdown(){ if((g_iCount - 1) >= 0){ g_iCount = g_iCount + 956; numberCountdown.innerText = '' + g_iCount; setTimeout('startCountdown()',1000); } } </script> А как будет выглядеть ваш скрипт? если не сложно напишите плиз:write: |
var f_num = 133,
d_num = 529, days = (new Date().getTime() / 1000 / 60 / 60 / 24) - (new Date('Apr 6 2010').getTime() / 1000 / 60 / 60 / 24); document.write(f_num + d_num * days); |
Скрипт то, что нужно
Спасибо exec большое, это то что было задумано :) А вот скажите плиз как показывать только целые числа в результате, чтобы после точки не отображал... а то я в программировании не совсем преуспевающий:-? больше в дизайне...
|
Если я правильно понял то нужно выводить только целую часть числа? Попробуй так parseInt(Число, 10) описание функции http://javascript.ru/parseInt
|
Использование "parseInt
с помощью этого метода, мне удалось вывести допустим со значения 1002.3539905092639 число 1002, только надо, чтобы результат автоматически переводился в целое число в скрипте:
var f_num = 1000, d_num = 5, days = (new Date().getTime() / 1000 / 60 / 60 / 24) - (new Date('Apr 7 2010').getTime() / 1000 / 60 / 60 / 24); document.write(f_num + d_num * days); Может что то неправильно делаю, куда его поместить? в таком же виде: parseInt(-15.1, 10); //допустим он выводит -15(целое, это гуд) А как сделать чтобы выводил не значение что я указал, а результат выполнения скрипта выше, чтобы тот результат округлял... |
Если нужно округлить days то его и помещай:
var f_num = 1000, d_num = 5, days = (new Date().getTime() / 1000 / 60 / 60 / 24) - (new Date('Apr 7 2010').getTime() / 1000 / 60 / 60 / 24); days = parseInt(days, 10); document.write(f_num + d_num * days); Как то так |
Лучше использовать Math.floor(days).
|
CollaiderKV,
var f_num = 133, d_num = 529, days = (new Date().getTime() / 1000 / 60 / 60 / 24) - (new Date('Apr 6 2010').getTime() / 1000 / 60 / 60 / 24); days = Math.round(days); document.write(f_num + d_num * days); |
Цитата:
var result = 133 + 529 * Math.floor((new Date().getTime() - new Date('Apr 6 2010').getTime()) / 86400000); alert(result); |
Ну да, ну да. А можно ещё больше оптимизировать и сократить)) :
var res = 133 + 529 * Math.floor((new Date().getTime() - 12704976e5) / 864e5); alert(res); |
Да, прогеры тут хорошие :) Спасибо вам огромное, а конкретно : DVVID, Gozar, Aetae, exec. Все прям то, что нужно, а сократили прям да :) Скажите, а я слышал что вполне реально каждую цифру получившегося значения выводить в отдельное поле(например 1259 представить так: "1" выводится в одно поле, "2" в другое. И соответственно если меняется значение результата, то меняются и значения в этих полях :-)). Вот так реально делать?
|
Реально. Но делать это вы должны сами.)
Примерно так оно должно выглядеть, только проще, ибо вам всего пару цифр надо: <div id='eeee'></div> <script type='text/javascript'> function isplit(a) { a=(a+'').split(''); var d, c=document.createDocumentFragment(), b=document.createElement('input');b.type='text';b.size=1; for(i=0;i<a.length;i++) {d=b.cloneNode(true);d.value=a[i];c.appendChild(d);} return c; } document.getElementById('eeee').appendChild(isplit(776976967367357123)); </script> |
Часовой пояс GMT +3, время: 11:01. |