Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
badboy

Скрипт, который считает период от введенной до текущей даты

07.06.2006, 02:14. Показов 2794. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
люди такой вопрос: вот скрипт он должен работать таким образом,вы вводите любое число,месяц и год и он должен пробигать от этой даты до настоящей (т.е. 6.6.06) скрипт неплохой вот только что-то в нем нетак когда посмотрите увидете. Вроде по скрипту должно всё работать,но чето он неработает!!! в чем моя ошибка???
Да и кстати у меня d.getMonth() и d.getDay() непрввильно работают!для того чтоб он правильно работал мне нужно(в скриптевидно) почему????

скрипт:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
function f1(){
d=new Date(); 
c=document.getElementById("i1").value;cc=d.getYear();
b=document.getElementById("i2").value;bb=d.getMonth()+1;
a=document.getElementById("i3").value;aa=d.getDay()+4;
 
if (c==""||c<0||c>cc){alert("vvedite pravilino god");document.getElementById("i1").value="";}
else if (b==""||b<=0||b>12){alert("vvedite pravilino meseac");document.getElementById("i2").value="";}
else if (a==""||a<=0||a>31){alert("vvedite pravilino deni");document.getElementById("i3").value="";}
else{f2();}
 
function f2(){
var vg1=new Array("0","2","4","6","8");var pvg1=new Array("0","4","8");
var vg2=new Array("1","3","5","7","9");var pvg2=new Array("2","6","6");
var d31=new Array("1","3","5","7","8","10","12");
var d30=new Array("4","6","9","11");
i=0;ii=0;j=0;w1=vg1;w2=pvg1;vg();
 
function vg(){
if (c.substring(3,2)==w1[i]&&c.substring(3,4)==w2[ii]){rvg=366;}
else if (ii==2&&i==4&&w1==vg2){rvg=365;}
else if (ii==2&&i==4){w1=vg2;w2=pvg2;i=0;ii=0;return vg();}
else if (ii<2){ii++;return vg();}
else if (ii==2){i++;ii=0;return vg();}}scd(j);
 
function scd(j){
if (b==d31[j]){k=31;}
else if (b==d30[j]){k=30;}
else if (b==2&&rvg=="366"){k=29;}
else if (b==2&&rvg=="365"){k=28;}
else if (b!==j){return scd(j+1);}}podt();
 
function podt(){
a2a=parseInt(a);c2c=parseInt(c);b2b=parseInt(b);
if (c2c<CC&&B2B<12&&A2A<K){A2A=(A2A+1);DALEE();}
if (c2c<CC&&B2B<12&&A2A==K){A2A=1;B2B=(B2B+1);DALEE();}
if (c2c<CC&&B2B==12&&A2A<K){A2A=(A2A+1);DALEE();}
if (c2c<CC&&B2B==12&&A2A==K){C2C=(C2C+1);B2B=1;A2A=1;DALEE();}
if (c2c==c){alert("end");}
}
function dalee()
{a=a2a.toString();b=b2b.toString();c=c2c.toString();document.write(a+":"+b+":"+c+"
");return f2();}
}}
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.06.2006, 02:14
Ответы с готовыми решениями:

Скрипт на javascript, который считает цену от доллара
Кто знает как сделать скрипт на javascript, который учитывая текущий курс доллара высчитывает стоимость в рублях, округляя до целой суммы?

Написать скрипт, который определяет по введенной дате рождения сколько было лет в период всей жизни
Написать скрипт, который определяет по введенной дате рождения сколько было лет в период всей жизни. Скрипт должен быть выполнен во всех...

На основе введенной даты рождения и текущей даты сообщить пользователю, сколько он прожил дней
3. Написать программу, которая на основе введенной даты рождения и текущей даты сообщает пользователю, сколько он прожил дней. Принять во...

4
mishgun
07.06.2006, 03:06
Я правда не понял в чем именно ошибка автор решил наверное чтоб ы сами догадались.

Чисто навскидку вот тебе описание Date функций которые ты используешь.Надесь поймешь в чем твоя ошибка

# getDay() - Day of the week(0-6). 0 = Sunday, ... , 6 = Saturday

# getDate() - Day of the month (0-31)

# getMonth() - Number of month (0-11)
badboy
07.06.2006, 14:43
спасибо насчет date() получилось теперь он у меня день выводит правильно, а месяц - get.Month() всеравно пишет на 1 меньше ну ладно это неглавное! главное то,что я немогу понять почему неработает скрипт! значит он выглядет так: допустим мы ввели в

input type="text" id="i1" size="5" maxlength="4" value=" ввели 2000

input type="text" id="i2" size="5" maxlength="2" value=" ввели 1

input type="text" id="i3" size="5" maxlength="2" value=" ввели1

input type="button" id="b1" value="ok" onclick="f1() кликнули



function f1(){

// в этой функции c=2000,b=1,a=1; cc,bb,aa=сегодняшнее число;

d=new Date();

c=document.getElementById("i1").value;cc =d.getYear();

b=document.getElementById("i2").value;bb =d.getMonth()+1;

a=document.getElementById("i3").value;aa =d.getDate();



// здесь проверяеться условие ввода и если все правильно то f2();

if (c==""||c<0||c>cc){alert("vvedite pravilino god");document.getElementById("i1").valu e="";}

else if (b==""||b<=0||b>12){alert("vvedite pravilino meseac");document.getElementById("i2").v alue="";}

else if (a==""||a<=0||a>31){alert("vvedite pravilino deni");document.getElementById("i3").val ue="";}

else{f2();}



function f2(){

// здесь я объявил переменные и массивы нужные в следующих функ.

var vg1=new Array("0","2","4","6","8");var pvg1=new Array("0","4","8");

var vg2=new Array("1","3","5","7","9");var pvg2=new Array("2","6","6");

var d31=new Array("1","3","5","7","8","10","12");

var d30=new Array("4","6","9","11");

i=0;ii=0;j=0;w1=vg1;w2=pvg1; vg();



function vg(){

// здесь сравнивается если высокосный год то rvg=366; или 365;

if (c.substring(3,2)==w1[i]&&c.substring(3,4)==w2[ii]){rvg=366;}

else if (ii==2&&i==4&&w1==vg2){rvg=365;}

else if (ii==2&&i==4){w1=vg2;w2=pvg2;i=0;ii=0;re turn vg();}

else if (ii<2){ii++;return vg();}

else if (ii==2){i++;ii=0;return vg();}}scd(j);



function scd(j){

// здесь по месяцу и году находиться сколько дней 31,30,29 или 28;

if (b==d31[j]){k=31;}

else if (b==d30[j]){k=30;}

else if (b==2&&rvg=="366"){k=29;}

else if (b==2&&rvg=="365"){k=28;}

else if (b!==j){return scd(j+1);}}podt();



function podt(){

// это щетчик который должен пробигать от 2000,1,1 до 2006,6,6

// и выписать все значиния 1.1.2000 / 2.1.2000 ... 6.6.2006

a2a=parseInt(a);c2c=parseInt(c);b2b=pars eInt(b);

if (c2c<cc&&b2b<12&&a2a<k){a2a=(a2a+1);}

if (c2c<cc&&b2b<12&&a2a==k){a2a=1;b2b=(b2b+ 1);}

if (c2c<cc&&b2b==12&&a2a<k){a2a=(a2a+1);}

if (c2c<cc&&b2b==12&&a2a==k){c2c=(c2c+1);b2 b=1;a2a=1;}

if (c2>=c){alert("end");}

a=a2a.toString();b=b2b.toString();c=c2c. toString();document.write(a+":"+b+":"+c+ "
");return f2();

}}}



только вот скрипт вроде работает т.е. допустим пробегает до 4.8.2000

или 3.6.2000 но никак ни до конца!!! а почему я немогу понять!!! вроде по скрипту все должно работать!!!



надеюсь понятно объяснил?!

прошу помочь!!!
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
07.06.2006, 15:05
Даже нет особого желания вникать в этот ужас - по другому такой код, с использованием рекурсии и вложенных функций, не назовешь!

По моему задача решается обычным циклом:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function enumDateRange()
{
    var i1 = document.getElementById("i1");
    var i2 = document.getElementById("i2");
    var i3 = document.getElementById("i3");
 
    var endDate = new Date();
    var beginDate = new Date(parseInt(i1.value),
                             parseInt(i2.value)-1,
                             parseInt(i3.value));
 
    for (;;)
    {
        beginDate = new Date(beginDate.valueOf() + 24*60*60*1000);
        if (beginDate.valueOf() > endDate.valueOf()) break;
 
        alert(beginDate);
    }
}
P.S. И на вопрос века это никак не тянет ...
0
badboy
08.06.2006, 20:23
Спасибо всем большое! Сглупил и забрался не в ту степь!
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.06.2006, 20:23
Помогаю со студенческими работами здесь

Через форму вводится лента формата даты, например (02.04.1978). Разработать сценарий, который проверяет правильность введенной даты.
Через форму вводится лента формата даты, например (02.04.1978). Разработать сценарий, который проверяет правильность введенной даты. ...

Есть ли скрипт, который считает дату Пасхи
Есть ли скрипт, который считает дату Пасхи? Т.е задаешь год, а в итоге показывает когда будет Пасха.

Создать скрипт в Bash, который считает символические ссылки в каталоге и подкаталогах
Здравствуйте, помогите написать скрипт в bash: Напишите скрипт, определяющий количество символических ссылок в текущем каталоге. Если...

Подскажите PHP скрипт, который считает и записывает клик, а после перебрасывает
Доброго времени суток. Подскажите автономный php скрипт, который бы считал количество переходов по ссылке, записывал значение в рядом...

Написать скрипт который по введенной дате будет вычислять количество дней по сегодняшнее число
Написать скрипт который по введенной дате будет вычислять количество дней по сегодняшнее число. Например: Ввели 20.04.2017, а сегодня...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru