четверг, января 11, 2007

Несколько заметок про Date

Как известно, конструктор Date может принимать значения года, месяца (0-11), дня (1-31) и т.п. Но можно немножко поиграть с параметрами и получить интересные результаты.

Например, если задать в качестве месяца -1, то из даты будет вычтен месяц:

var dt:Date = new Date( 2006, -1, 1 );
// Thu Dec 1 00:00:00 GMT+0300 2005


Теперь попытаемся создать 0 января 2006 года:

dt = new Date( 2006, 0, 0 );

Получим 31 декабря 2005 года.

0 марта не существует, поэтому получаем 29 февраля (2008 год будет високосным):

dt = new Date( 2008, 2, 0 );

Теперь вычтем из текущей даты неделю:

dt = new Date();
dt.date = dt.date - 7;


Получим Thu Jan 4 2006.

Вот такая математика:)

С прошедшими праздниками всех!

3 комментария:

Анонимный комментирует...

Да, действительно интересная арифметика. Возьму на заметку.

Alex Batsuev комментирует...

Больше радует арифметика при сравнении ;-)

var d1:Date = new Date(2005,01,01);
var d2:Date = new Date(2005,01,01);
trace (d1 == d2);
trace (d1 > d2 || d1 < d2);

Unknown комментирует...

Хе-хе. Вот статья мне и на практике пригодилась. Делаю компонент работающий со временем. =)