Найти дату того же дня недели в прошлом году? - PullRequest
2 голосов
/ 02 февраля 2010

ОК, так, например, сегодня вторник, 2 февраля. Ну, эквивалент " Вторник " по сравнению с прошлым годом был 3 февраля.

Как я могу узнать это программно?

Спасибо !!

Ответы [ 2 ]

3 голосов
/ 02 февраля 2010

Только мои два цента. Мне не нравится идея, что второй ответ предполагает 52 недели в году, он будет работать в течение одного года, но это решение только этой конкретной проблемы, например. если вы хотите проверить то же самое, вернувшись на 10 лет назад, это не сработает. Я бы сделал это так:

var today:Date = new Date();    
// Here we store the day of the week            
var currentDay:int = today.day;
trace (today);      
const milisecondsInADay:uint = 1000*60*60*24;
// Here we move back a year, but we can just as well move back 10 years
// or 2 months      
today.fullYear -= 1;
// Find the closest date that is the same day of the week as current day
today.time -= milisecondsInADay*(today.day-currentDay);     
trace (today);

возвращается:

Tue Feb 2 21:13:18 GMT+0100 2010 
Tue Feb 3 21:13:18 GMT+0100 2009
2 голосов
/ 02 февраля 2010

По данным Google, в неделю 604 800 000 миллисекунд.Это время 52 должно дать вам тот же день недели год спустя (верно?).

Например:

var date:Date = new Date(2010, 1, 2);
trace(date);
date.setMilliseconds(date.milliseconds - 604800000 * 52);
trace(date);

Вывод:

Tue Feb 2 00:00:00 GMT-0800 2010
Tue Feb 3 00:00:00 GMT-0800 2009
...