Просмотр полной версии : как узнать оставшееся количество дней до нового года?
kichSman
16.11.2009, 23:02
У меня есть одно предположение, которое заключается в следующем, узнаем количество оставшихся дней в текущем месяце от сегодняшней даты, далее,просуммировать их с кол-ом дней последующих месяцев и так до 31 декабря сего года.
Есть у вас другие более оптимальные решения? Поделитесь своим примером...
Кстати, дата вычисляется получаемой переменной, т.е. она серверная
var newYearTime:Number = 1262293200000;
var intervalId:Number;
function funcBackTimer(){
var my_date:Date = new Date();
_root.nowTimestamp = my_date.getTime()
razn = Math.round((_root.newYearTime - _root.nowTimestamp)/1000);
d = Math.floor(razn/86400);
ost = razn - d*86400;
h = Math.floor(ost/3600);
ost = ost-h*3600;
m = Math.floor(ost/60);
s = ost-m*60 ;
backtimerField_txt = 'До нового года '+d+'д. '+h+'ч. '+m+'мин. '+s+'сек.';
}
intervalId = setInterval(this,'funcBackTimer',1000);
kichSman
18.11.2009, 19:56
вот моя реализация, правда без проверки на високосность, но это не проблема достаточно условие для года и месяца (февраль)
if (year%4 == 0 && month==1)
кстати, скрипт, основывается на пользовательском календаре,
//количество оставшихся дней (без учета високосности)
var cold:Array = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var nowDate:Date = new Date();
var reD:Number = new Number;
for(i = nowDate.getMonth(); i <=11; i++){reD = reD + cold[i];}
reD = reD - nowDate.getDate();
//ПРЕОБРАЗОВАНИЕ
var varRs:String = reD.toString();
var varRarr:Array = varRs.split("");
var varRi:Number = varRarr[varRarr.length-1];
if (varRi > 4){
txtD = "дней";
}else if(varRi == 1){
txtD = "день";
}else{
txtD = "дня";
}
redays.text = reD+"\n"+txtD;
Мы не ищем легких путей...
kichSman, зачем этот огород городить, если можно узнать четкое количество времени с 1 января 1970 по 2010, количество миллисекунд на локальной машине пользователя с 01/01/1970, вычесть из одного другое и получить количество времени до нового года. Причем не важного какого, високосного или нет. Что и сделано во втором посте.
kichSman
18.11.2009, 21:31
Мы не ищем легких путей...
kichSman, зачем этот огород городить, если можно узнать четкое количество времени с 1 января 1970 по 2010, количество миллисекунд на локальной машине пользователя с 01/01/1970, вычесть из одного другое и получить количество времени до нового года. Причем не важного какого, високосного или нет. Что и сделано во втором посте.
А затем, что представлено как альтернатива, и заметьте скрипт не намного больше.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.