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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.11.2013, 05:10
GrafMine вне форума Посмотреть профиль Отправить личное сообщение для GrafMine Найти все сообщения от GrafMine
  № 1  
Ответить с цитированием
GrafMine
 
Аватар для GrafMine

Регистрация: Jan 2011
Сообщений: 247
По умолчанию Date расписание

Появилась идея реализовать расписание, но столкнулся с проблемой:
Код AS3:
var now:Date = new Date();
trace(now.getHours() + ":" + now.getMinutes());     // 10:20
При проверки времени нужно проверить попадаю ли я в определенный промежуток времени например
Код AS3:
"startTime":"10:00:00","endTime":"10:45:00"
как мне сравнить полученное время(от PC) с текстом "10:00:00" ? и при этом просчитать сколько осталось до конца промежутка( и в дальнейшем вести обратный отсчет до нуля)?
Так же интересует существует ли способ получение времени не с компа и не через ( getUTCHours()\getUTCMinutes() ), а вообще через интернет получить киевское время ?

Старый 15.11.2013, 05:49
am_devcorp вне форума Посмотреть профиль Отправить личное сообщение для am_devcorp Найти все сообщения от am_devcorp
  № 2  
Ответить с цитированием
am_devcorp
 
Аватар для am_devcorp

Регистрация: Jan 2012
Адрес: (0;0;0) относительно меня
Сообщений: 82
Отправить сообщение для am_devcorp с помощью Skype™
> как мне сравнить полученное время(от PC) с текстом "10:00:00"
Разбиваешь его на часы-минуты-секунды и сравниваешь как два числа, имея в виду, что вместо тысяч-сотен-десятков у тебя часы-минуты-секунды

Допустим сейчас 04:50:00 утра.
Нам надо узнать, было уже 5:11:00 утра или нет
Код AS3:
            var now:Date = new Date();
            var current:Array = [now.getHours(), now.getMinutes(), now.getSeconds()];
            var alarm:String = "05:11:00";
            var arr_alarm:Array = alarm.split(":");
 
            var f:Boolean = true
            var before:Boolean
            for (var i:int = 0; i < current.length &amp;f; ++i) {
                if (current[i] < arr_alarm[i]) {
                    before = true;
                    f = false;
                } else if (current[i] > arr_alarm[i]){
                    before = false;
                    f = false;
                }
            }
            trace(before);
            trace(now.getTime()-new Date(2013,10,15,5,11,0,0).getTime())
Последний trace выводит разницу текущего времени и 5:11 утра сегодня
//где-то тут точно какая-то фигня, потому что сейчас 4:50 утра и у меня сломался дебаггер : (
(там в цикле написано &&f, у форума какая-то бага)
__________________
cats are supreme beings

Старый 15.11.2013, 05:50
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 3  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Цитата:
как мне сравнить полученное время(от PC) с текстом "10:00:00"
Перевести текст в Date. Это можно сделать руками, порезав по двоеточию и поставив часы, минуты и секунды к нужной дате. Но поидее должны быть методы заполнения объекта Date из строки, поглядите.

Сравнивать можно просто:
Код AS3:
var date1:Date = new Date();
var date2:Date = new Date();
if (date1 >= date2) trace("check");
Всякие прочие расчеты удобннее проводить с юникс-таймом(date.getTime()). Это будет флоат цифра, интегер это кол-во секунд с какого-то там 70-го года, и дробная часть - милисекунды. Вцелом можно вообще всю свою систему на этом построить, но иногда удобнее конкретные даты сравнивать.

Насчет получить время из тырнета ниче не скажу. Поидее все сервера для синхронизации времени дают некий get-url по которому выдается нужная информация. Нужно выяснить формат в котором они выдают ответ и парсить его. А дальше дело техники URLLoader и погнали.

Добавлено через 58 секунд
Предыдущий ответ дикий оверхед и пример как не стоит работать с датами в ас3 Уж простите, но это так.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 15.11.2013, 05:59
am_devcorp вне форума Посмотреть профиль Отправить личное сообщение для am_devcorp Найти все сообщения от am_devcorp
  № 4  
Ответить с цитированием
am_devcorp
 
Аватар для am_devcorp

Регистрация: Jan 2012
Адрес: (0;0;0) относительно меня
Сообщений: 82
Отправить сообщение для am_devcorp с помощью Skype™
Насчёт получения времени.
1.Делаешь запрос, например, сюда:
http://www.timeapi.org/utc/now
2. получаешь ответ и парсишь.
3. Тот сервис возвращает время в UTC, поэтому используешь now.setUTCHours()/Minutes/Seconds чтоб поставить время в UTC
4. ...
5. делаешь что там надо дальше.

А можно сделать запрос сюда: http://www.timeapi.org/+4/ для получения времени в UTC+4

Мой предыдущий ответ был таким тупым потому что -о, боги!- уже пять утра и я был не прочь написать немного индусского кода
__________________
cats are supreme beings


Последний раз редактировалось am_devcorp; 15.11.2013 в 06:13. Причина: dont worry i got dis
Старый 15.11.2013, 13:31
GrafMine вне форума Посмотреть профиль Отправить личное сообщение для GrafMine Найти все сообщения от GrafMine
  № 5  
Ответить с цитированием
GrafMine
 
Аватар для GrafMine

Регистрация: Jan 2011
Сообщений: 247
Цитата:
Сообщение от am_devcorp Посмотреть сообщение
А можно сделать запрос сюда: http://www.timeapi.org/+4/ для получения времени в UTC+4
Что я делаю не так ? :
Код AS3:
protected function button8_clickHandler(event:MouseEvent):void{
                                             var request:URLRequest = new URLRequest("http://www.timeapi.org/+2/now?\I:\M:\S"); 							
				loader = new URLLoader();				
				try {
					loader.load(request);
				}
				catch (error:SecurityError)
				{
					trace("A SecurityError has occurred.");
				}
 
				loader.addEventListener(Event.COMPLETE, loadcomplete);			
 
			}
			private function loadcomplete(event:Event) { 
				try {
					var now_Time:String = new String(loader.data); 
					trace(now_Time);
 
 
				} catch (e:TypeError) {
					trace("Could not parse the XML file.");
				} 
			}
Выводит :
Код AS3:
I:M:S
Добавлено через 9 минут
Обошел проблему путем другой ссылки


Последний раз редактировалось GrafMine; 15.11.2013 в 13:43.
Старый 15.11.2013, 15:33
am_devcorp вне форума Посмотреть профиль Отправить личное сообщение для am_devcorp Найти все сообщения от am_devcorp
  № 6  
Ответить с цитированием
am_devcorp
 
Аватар для am_devcorp

Регистрация: Jan 2012
Адрес: (0;0;0) относительно меня
Сообщений: 82
Отправить сообщение для am_devcorp с помощью Skype™
Тут ссылка
Код AS3:
http://www.timeapi.org/+2/now?\I:\M:\S
В ней эскейпятся символы I, M, S.
в коде надо было писать
Код AS3:
http://www.timeapi.org/+2/now?\\I:\\M:\\S
, вот и всё.
__________________
cats are supreme beings

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

Теги
Date

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

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


 


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


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