Pregunta

Tengo una tabla que containt una fecha, un número para el número de semanas por período, y un año. Entonces, el usuario entra en una fecha y que se puede calcular el número de período de este. Pero me gustaría hacerlo en el otro sentido: Introducción de un número de período y obtener la fecha de inicio y al final del periodo de esto. Por desgracia, me parece que no puede obtener la lógica de la derecha. Me podría guiar a cualquier persona con esto?

Gracias.

EDIT: Opciones [0] siendo la fecha de inicio de la base de datos y opciones [1] el número de semanas durante un período.

Esta es la función que ya tengo, y que funciona:

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;
    }

Digamos que mi fecha de inicio 12/12/2009 que, después de pasar 12/12/2009 a esta función retornaría 1, ya que es el primer "período" de esta fecha (en número de la semana).

Lo que quiero es hacer una función periodToDate.

¿Fue útil?

Solución

EDITADO respuesta basada en información nueva

De acuerdo, esto es bastante simple entonces. Puede agregar valores a la propiedad de fecha. Prueba de esto, de nuevo, no probado.

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

Edit End

No he probado esto, sólo un poco de código rápido, pero creo que esto debe conseguir que va en la dirección correcta.

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;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top