Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.11.2009, 23:02
kichSman вне форума Посмотреть профиль Отправить личное сообщение для kichSman Найти все сообщения от kichSman
  № 1  
Ответить с цитированием
kichSman
[+1.4 24.09.09]

Регистрация: Apr 2009
Сообщений: 72
По умолчанию как узнать оставшееся количество дней до нового года?

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

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

Старый 17.11.2009, 02:48
donphp вне форума Посмотреть профиль Отправить личное сообщение для donphp Найти все сообщения от donphp
  № 2  
Ответить с цитированием
donphp

Регистрация: Aug 2009
Сообщений: 40
Код 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);

Старый 18.11.2009, 19:56
kichSman вне форума Посмотреть профиль Отправить личное сообщение для kichSman Найти все сообщения от kichSman
  № 3  
Ответить с цитированием
kichSman
[+1.4 24.09.09]

Регистрация: Apr 2009
Сообщений: 72
По умолчанию Тему можно добавить в 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;

Старый 18.11.2009, 20:34
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 4  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Мы не ищем легких путей...
kichSman, зачем этот огород городить, если можно узнать четкое количество времени с 1 января 1970 по 2010, количество миллисекунд на локальной машине пользователя с 01/01/1970, вычесть из одного другое и получить количество времени до нового года. Причем не важного какого, високосного или нет. Что и сделано во втором посте.

Старый 18.11.2009, 21:31
kichSman вне форума Посмотреть профиль Отправить личное сообщение для kichSman Найти все сообщения от kichSman
  № 5  
Ответить с цитированием
kichSman
[+1.4 24.09.09]

Регистрация: Apr 2009
Сообщений: 72
Цитата:
Сообщение от udaaff Посмотреть сообщение
Мы не ищем легких путей...
kichSman, зачем этот огород городить, если можно узнать четкое количество времени с 1 января 1970 по 2010, количество миллисекунд на локальной машине пользователя с 01/01/1970, вычесть из одного другое и получить количество времени до нового года. Причем не важного какого, високосного или нет. Что и сделано во втором посте.
А затем, что представлено как альтернатива, и заметьте скрипт не намного больше.

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:47.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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