Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   как узнать оставшееся количество дней до нового года? (http://www.flasher.ru/forum/showthread.php?t=132621)

kichSman 16.11.2009 23:02

как узнать оставшееся количество дней до нового года?
 
У меня есть одно предположение, которое заключается в следующем, узнаем количество оставшихся дней в текущем месяце от сегодняшней даты, далее,просуммировать их с кол-ом дней последующих месяцев и так до 31 декабря сего года.
Есть у вас другие более оптимальные решения? Поделитесь своим примером...

Кстати, дата вычисляется получаемой переменной, т.е. она серверная

donphp 17.11.2009 02:48

Код AS1/AS2:

var newYearTime:Number = 1262293200000;

Код AS1/AS2:

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

Тему можно добавить в FAQ
 
вот моя реализация, правда без проверки на високосность, но это не проблема достаточно условие для года и месяца (февраль)
Код AS1/AS2:

if (year%4 == 0 && month==1)

кстати, скрипт, основывается на пользовательском календаре,
Код AS1/AS2:

//количество оставшихся дней (без учета високосности)
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;


udaaff 18.11.2009 20:34

Мы не ищем легких путей...
kichSman, зачем этот огород городить, если можно узнать четкое количество времени с 1 января 1970 по 2010, количество миллисекунд на локальной машине пользователя с 01/01/1970, вычесть из одного другое и получить количество времени до нового года. Причем не важного какого, високосного или нет. Что и сделано во втором посте.

kichSman 18.11.2009 21:31

Цитата:

Сообщение от udaaff (Сообщение 866550)
Мы не ищем легких путей...
kichSman, зачем этот огород городить, если можно узнать четкое количество времени с 1 января 1970 по 2010, количество миллисекунд на локальной машине пользователя с 01/01/1970, вычесть из одного другое и получить количество времени до нового года. Причем не важного какого, високосного или нет. Что и сделано во втором посте.

А затем, что представлено как альтернатива, и заметьте скрипт не намного больше.


Часовой пояс GMT +4, время: 07:05.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.