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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.03.2013, 15:16
Котяра2006 вне форума Посмотреть профиль Отправить личное сообщение для Котяра2006 Найти все сообщения от Котяра2006
  № 1  
Ответить с цитированием
Котяра2006

Регистрация: Jun 2006
Сообщений: 274
По умолчанию Определять последний понедельник каждого месяца

Всем привет!

Как переменной присвоить числовое значение последнего понедельника текущего месяца?
Замысел в том чтобы говорить пользователю сколько дней осталось до последнего понедельника текущего месяца. А если, например, уже последний вторник в этом месяце — говорить сколько осталось дней до последнего понедельника следующего месяца. Во как)

Спасибо огромное за любую помощь.

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

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
В AS2 есть класс Date, у него есть много разных методов для работы с датами. Посмотрите описание этого класа и его методов. В Flash 8 можно нажать F1 и там найти описание этого класа.
__________________
Дети не должны знать о своих родителях

Старый 11.03.2013, 15:26
Котяра2006 вне форума Посмотреть профиль Отправить личное сообщение для Котяра2006 Найти все сообщения от Котяра2006
  № 3  
Ответить с цитированием
Котяра2006

Регистрация: Jun 2006
Сообщений: 274
да-да, спасибо, я как раз его и изучаю, но не совсем могу догнать как построить логику определения именно последнего понедельника. В месяцах же разное кол-во дней и т.д.

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

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Последний понедельник = количество оставшихся в месяце дней < 7

То есть:
  1. С начала вам нужно получить количество дней в текущем месяце.
  2. Затем получить текущий номер дня в этом месяце.
  3. Чтобы узнать, последний ли этот понедельник, вы вычитаете из общего количества дней текущий номер дня. Если оставшееся значение меньше 7, значит, этот понедельник - последний.
__________________
Дети не должны знать о своих родителях

Старый 11.03.2013, 15:59
Котяра2006 вне форума Посмотреть профиль Отправить личное сообщение для Котяра2006 Найти все сообщения от Котяра2006
  № 5  
Ответить с цитированием
Котяра2006

Регистрация: Jun 2006
Сообщений: 274
Спасибо за логику, теперь стало ясно. Сейчас одна загвоздка осталась, не могу найти в Date способ которым можно узнать именно количество дней в месяце.

Старый 11.03.2013, 16:52
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 6  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Код AS1/AS2:
// Текущая дата
var currentDate:Date 	= new Date();
 
// Начало текущего месяца
var currentMonth:Date 	= new Date();
currentMonth.setDate(1);
currentMonth.setHours(0);
currentMonth.setMinutes(0);
currentMonth.setSeconds(0);
 
// Прошедшее время с начала месяца в милисекундах
var elapsedTime:Number	= currentDate.getTime() - currentMonth.getTime();
 
// Время прошедшее с начала месяца в днях:
trace('Текущий день: '+Math.ceil(elapsedTime/1000/60/60/24));
 
// Количество дней в месяце можно посчитать так:
var startMonth:Number	= currentMonth.getTime();
currentMonth.setMonth(currentDate.getMonth()+1);
 
var mounthDays:Number	= currentMonth.getTime() - startMonth;
 
// Количество дней в месяце:
trace('Всего дней в этом месяце: '+mounthDays/1000/60/60/24);
__________________
Дети не должны знать о своих родителях

Старый 11.03.2013, 17:30
Котяра2006 вне форума Посмотреть профиль Отправить личное сообщение для Котяра2006 Найти все сообщения от Котяра2006
  № 7  
Ответить с цитированием
Котяра2006

Регистрация: Jun 2006
Сообщений: 274
Спасибо огромное =)

Старый 12.03.2013, 13:09
olexandr вне форума Посмотреть профиль Отправить личное сообщение для olexandr Посетить домашнюю страницу olexandr Найти все сообщения от olexandr
  № 8  
Ответить с цитированием
olexandr
 
Аватар для olexandr

Регистрация: Aug 2007
Адрес: Ukraine, Kyiv
Сообщений: 643
Отправить сообщение для olexandr с помощью ICQ Отправить сообщение для olexandr с помощью MSN Отправить сообщение для olexandr с помощью Skype™
Код AS3:
function getLastMonday(month:int, year:int):int {
	var _date:Date = new Date(year, month + 1, 1);
	_date.date--;
 
	while(_date.day != 1)
		_date.date--;
 
	return _date.date;
}
 
trace(getLastMonday(2, 2013));
__________________
сайт, vk

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

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

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


 


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


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