2009-12-31 6 views
0

У меня есть таблица, которая содержит дату, число для количества недель за период и год. пользователь затем вводит дату, и я могу вычислить номер периода из этого. Но я хотел бы сделать это и наоборот: введите номер периода и получите дату начала и окончания периода. К сожалению, я не могу найти правильную логику. Может ли кто-нибудь вести меня с этим?Получить дату с номера периода в Actionscript

спасибо.

EDIT: опции [0] - дата начала из базы данных и опции [1] количество недель за один период.

Это функция у меня уже есть, и которая работает:

private function dateToPeriod(date:Date):Number 
    { 
     var d = new Date(options[0]); 
     var periode = Math.floor((date.time - d.time)/(604800000*options[1])+1); 
     return periode; 
    } 

скажет дату начала его 12/12/2009, переходя затем 12/12/2009 эту функцию будет возвращать 1, так как это первый «период» с этой даты (в номере недели).

Я хочу сделать функцию periodToDate.

+0

Вы можете поделиться некоторыми примерами? Я немного не понимаю, что вы пытаетесь сделать. –

+0

Какую информацию вы передаете функции, дату начала, количество периодов и длину периода в неделях? –

+0

Да, это все. – fbernier

ответ

1

EDITED ОТВЕТ НА ОСНОВЕ НОВОГО ИНФО

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

public function addPeriodToDate(date:Date, period:int, numWeeksInPeriod:int):Date 
{ 
    var periodDate:Date = new Date(date.time); 
    periodDate.date += period * numWeeksInPeriod; 
    return periodDate; 
} 

END EDIT

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

private function dateToPeriod(date:Date):Number 
{ 
    var d = new Date(options[0]); 
    var diffInMilliseconds:Number = date.time - d.time; 
    var diffInWeeks:Number = diffInMilliseconds/1000/60/60/24/7; 
    var weeksInPeriod:Number = options[1]; 
    var period:int = diffInWeeks/weeksInPeriod + 1; 

    return period; 
} 
+0

Извините, я не был достаточно ясен. – fbernier