![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
|
Цитата:
![]()
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный. (S.Wizard) |
|
|||||
|
Регистрация: Aug 2001
Адрес: vg
Сообщений: 352
|
bless - mage skill
к просвещению не имеющий никакого отношения. если бы тебе хотелось занятся просвещением, то мог бы по дороге объяснить что, getDate() натравленный на дату возвращает день месяца, а так язвил просто. проехали |
|
|||||
|
Регистрация: Apr 2004
Адрес: МО. Орехово-Зуево
Сообщений: 27
|
2 greyshaman
А теперь еще разок, для чайника, и помедленее. Вставив твой код, при тестировании вылезает окно Output и начинает выдавать огромное кол-во цифр. Вы , наверное, неправильно меня поняли или я не так объяснял. Мне надо, чтобы Flash подсчитал, то кол-во дней, которые остались до даты, и вывел все это в окошко Динамического текста.
__________________
Удача благоволит подготовленному уму... |
|
|||||
|
Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
|
2ЭрСи. Посмотри мой пост от21-06-2004 18:40. Там же все написано.
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный. (S.Wizard) |
|
|||||
|
"человек"
Регистрация: Nov 2002
Адрес: +-
Сообщений: 1,807
|
next_date=new Date(2004,6,20,13,30,20,38); // new Date(год., мес., ден., час., мин., сек., мсек.);
now_date=new Date(2003,5,10,12,29,0,0); // new Date();
var delta_date=(next_date.getTime()-now_date.getTime());
with(now_date){trace("текущая дата: "+getFullYear()+"."+getMonth()+"."+getDate()+" "+getHours()+":"+getMinutes()+":"+getSeconds()+"."+getMilliseconds());};
with(next_date){trace("следующая дата: "+getFullYear()+"."+getMonth()+"."+getDate()+" "+getHours()+":"+getMinutes()+":"+getSeconds()+"."+getMilliseconds()+newline);};
trace("сколько осталось по отдельности: ");
var mo=(1000*60*60*24*31*12); // усреднил количество дней в месяце как 31
var d=(1000*60*60*24*31); // усреднил количество дней в месяце как 31
var h=(1000*60*60*24);
var m=(1000*60*60);
var s=(1000*60);
var ms=1000;
var yers=Math.floor(delta_date/mo); trace("год.: "+yers+" (усреднённое)");
var mons=Math.floor(delta_date/d); trace("мес.: "+mons+" (усреднённое)");
var days=Math.floor(delta_date/h); trace("ден.: "+days);
var hours=Math.floor(delta_date/m); trace("час.: "+hours);
var mins=Math.floor(delta_date/s); trace("мин.: "+mins);
var secs=Math.floor(delta_date/ms); trace("сек.: "+secs);
var msecs=Math.floor(delta_date); trace("мил. сек.: "+msecs);
trace(newline+newline+"сколько осталось всего в общем: ");
var yers=Math.floor(delta_date/mo);
var mons=Math.floor((delta_date-yers*mo)/d);
var days=Math.floor((delta_date-yers*mo-mons*d)/h);
var hours=Math.floor((delta_date-yers*mo-mons*d-days*h)/m);
var mins=Math.floor((delta_date-yers*mo-mons*d-days*h-hours*m)/s);
var secs=Math.floor((delta_date-yers*mo-mons*d-days*h-hours*m-mins*s)/ms);
var msecs=Math.floor(delta_date-yers*mo-mons*d-days*h-hours*m-mins*s-secs*ms);
trace(yers+"год., "+mons+"мес., "+days+"ден., "+hours+"час., "+mins+"мин., "+secs+"сек., "+msecs+"мсек. ");
trace("( "+yers+","+mons+","+days+" "+hours+":"+mins+":"+secs+"."+msecs+" )");
trace(newline+"могут быть неточности в расчётах дней, \nт.к. я усреднил число дней в месяце как 31, \nно сделать вычисление с учётом года, либо базы данных..");
trace(newline+"[расчёты Techmaker'а]");
__________________
flash it |
|
|||||
|
Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
|
2ЭрСи. В личку это письмо не влезло. Поэтому отвечаю здесь.
А ты обрати внимание на разницу в коде. А именно на определение значения d3. У тебя: d3 = d1.getDate() - d2.getDate(); У меня: d3 = d1.getTime() - d2.getTime(); Метод объекта Date getDate() возвращает значение числа в указанном месяце. Например, если мы напишем так: d1 = new Date(); trace(d1); - в output мы получим Wed Jun 23 18:16:27 GMT+0400 2004. Если мы протрейсим trace(d1.getDate), то получим в output только сегодняшнее число (23). А вот метод getTime() возвращает количество миллисекунд прошедших с 0.00 1 января 1970 года до той даты, которая у нас указана в new Date(); Для того, чтобы вычислить разницу (в днях) между двумя датами, мы сначала высчитываем разницу в миллисекундах (d3 = d1.getTime() - d2.getTime();), а затем переводим эти миллисекунды в дни (d4 = Math.floor(d3 / (1000 * 60 * 60 * 24));) Ты же в своем коде высчитывал разницу в днях d3 = d1.getDate()- d2.getDate(); В этой формуле d3 равно -1 (на сегодняшний день) и, естественно – d4 = Math.floor(-1 / (1000 * 60 * 60 * 24)) = 0. Надеюсь, ты понял. Если нет,- спрашивай. Удачи.
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный. (S.Wizard) |
|
|||||
|
Регистрация: Apr 2004
Адрес: МО. Орехово-Зуево
Сообщений: 27
|
Да, спасибо! Теперь стало немного понятней.
__________________
Удача благоволит подготовленному уму... |
![]() |
Часовой пояс GMT +4, время: 20:25. |
|
|
« Предыдущая тема | Следующая тема » |
|
|