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

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

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

Регистрация: Aug 2010
Сообщений: 28
Question Создание массива дат

Доброго времени суток!
В процессе работы возникла проблема, с которой справиться не получается.В программировании я пока чайник, поэтому за возможно глупый вопрос камнями прошу не бросаться. Суть в следующем: имеется две даты (начальная и конечная, беруться из DateField), требуется составить массив из промежуточных дат для последующей отправки в базу данных.
Вид на данный момент у меня такой (но увы нерабочий):
Код AS1/AS2:
   // Задаю массив необходимый для отправки в БД
   var date_arr = new Array();
   var millisecondsPerDay = 1000 * 60 * 60 * 24;
   var oneday:Date = new Date(dateToCheck.getTime());
   // Расчет количества дней между начальной и конечной датой (dateToCheck - начальная дата, dateToCheck1- конечная)
   var n = (dateToCheck1.getTime () - dateToCheck.getTime ()) / (1000 * 60 * 60 * 24);
   trace (n);
   // И моя запись в массив
   for (i=0; i<=n-2;i++ ) 
		{
			var oneday1:Date = new Date(); 
			oneday1=oneday;
			oneday1.setTime(oneday.getTime() + millisecondsPerDay);
			date_arr.push(oneday1);
			trace(date_arr);
		}
При таком исполнении,если допустим задать 22 и 28 августа, выдаст следующее:
Код:
Mon Aug 23 00:53:26 GMT+0400 2010
Tue Aug 24 00:53:26 GMT+0400 2010,Tue Aug 24 00:53:26 GMT+0400 2010
Wed Aug 25 00:53:26 GMT+0400 2010,Wed Aug 25 00:53:26 GMT+0400 2010,Wed Aug 25 00:53:26 GMT+0400 2010
Thu Aug 26 00:53:26 GMT+0400 2010,Thu Aug 26 00:53:26 GMT+0400 2010,Thu Aug 26 00:53:26 GMT+0400 2010,Thu Aug 26 00:53:26 GMT+0400 2010
Fri Aug 27 00:53:26 GMT+0400 2010,Fri Aug 27 00:53:26 GMT+0400 2010,Fri Aug 27 00:53:26 GMT+0400 2010,Fri Aug 27 00:53:26 GMT+0400 2010,Fri Aug 27 00:53:26 GMT+0400 2010
Но, если поставить trace(date_arr); вне цикла,т.е.:
Код AS1/AS2:
for (i=0; i<=n-2;i++ ) 
		{
			var oneday1:Date = new Date(); 
			oneday1=oneday;
			oneday1.setTime(oneday.getTime() + millisecondsPerDay);
			date_arr.push(oneday1);
		}
trace(date_arr);
то выдаст
Код:
Fri Aug 27 00:57:09 GMT+0400 2010,Fri Aug 27 00:57:09 GMT+0400 2010,Fri Aug 27 00:57:09 GMT+0400 2010,Fri Aug 27 00:57:09 GMT+0400 2010,Fri Aug 27 00:57:09 GMT+0400 2010

Никак не могу разобраться как нормально создать этот массив,чтобы его можно было записать в базу.Подскажите пожалуйста.

Старый 16.08.2010, 02:38
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Но, если поставить trace(date_arr); вне цикла,т.е.:
то выдаст
А что вы ожидали увидеть?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Aug 2010
Сообщений: 28
Ожидал, то что было в первом случае,но похоже не понимаю саму суть процесса.

Старый 16.08.2010, 02:52
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
В первом случаи у вас выводится содержимое массива по мере его заполнения. А во втором уже заполненный массив. Все верно.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 16.08.2010, 02:56
parovozeg вне форума Посмотреть профиль Отправить личное сообщение для parovozeg Найти все сообщения от parovozeg
  № 5  
Ответить с цитированием
parovozeg
 
Аватар для parovozeg

Регистрация: Aug 2010
Сообщений: 28
Так,это понял.А каким образом мне получить массив с промежуточными датами?

Старый 16.08.2010, 03:02
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 6  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Так это и есть этот массив.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 16.08.2010, 03:10
parovozeg вне форума Посмотреть профиль Отправить личное сообщение для parovozeg Найти все сообщения от parovozeg
  № 7  
Ответить с цитированием
parovozeg
 
Аватар для parovozeg

Регистрация: Aug 2010
Сообщений: 28
Заполненный массив состоит из записаной несколько раз последней даты.Мне же требуются все промежуточные значения. Видимо я как то неправильно задаю заполнение и поэтому хочу узнать как это нормально реализовать.

Старый 16.08.2010, 03:21
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 8  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Код AS1/AS2:
// Задаю массив необходимый для отправки в БД
var date_arr = new Array ();
var millisecondsPerDay = 1000 * 60 * 60 * 24;
// Расчет количества дней между начальной и конечной датой (dateToCheck - начальная дата, dateToCheck1- конечная)
var n = (dateToCheck1.getTime () - dateToCheck.getTime ()) / (1000 * 60 * 60 * 24);
trace (n);
// И моя запись в массив
for (i = 1; i < n; i++) {
	var oneday:Date = new Date ();
	oneday.setTime (dateToCheck.getTime () + millisecondsPerDay * i);
	date_arr.push (oneday.getDate ());
	trace (date_arr);
}
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 16.08.2010, 03:34
parovozeg вне форума Посмотреть профиль Отправить личное сообщение для parovozeg Найти все сообщения от parovozeg
  № 9  
Ответить с цитированием
parovozeg
 
Аватар для parovozeg

Регистрация: Aug 2010
Сообщений: 28
Огромнейшее спасибо!

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

Теги
дата , запись , массив

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

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


 


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


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