2009-12-31 4 views
0

J'ai un tableau qui contient une date, un nombre pour le nombre de semaines par période et une année. l'utilisateur entre alors une date et je peux calculer le nombre de période de ceci. Mais j'aimerais aussi le faire dans l'autre sens: entrer un numéro de période et obtenir la date de début et de fin de la période. Malheureusement, je n'arrive pas à avoir la bonne logique. Quelqu'un pourrait-il me guider avec cela?Obtenir la date du numéro de période dans Actionscript

Merci.

EDIT: options [0] étant la date de début de la base de données et les options [1] le nombre de semaines pour une période.

C'est la fonction que je l'ai déjà et qui fonctionne:

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

disons que ma date de départ il 12/12/2009, en passant ensuite 12/12/2009 à cette fonction renverrait 1 puisqu'il est le première "période" à partir de cette date (en semaine).

Ce que je veux est de faire une fonction periodToDate.

+0

Pouvez-vous partager quelques exemples? Je ne suis pas très clair sur ce que vous essayez de faire. –

+0

Quelles informations transmettez-vous alors à la fonction, une date de début, un nombre de périodes et une durée de période en semaines? –

+0

ouais c'est tout. – fbernier

Répondre

1

RÉPONSE ÉDITÉ SUR LA BASE DE NOUVEAU INFO

D'accord, cela est assez simple alors. Vous pouvez ajouter des valeurs sur la propriété date. Essayez ceci, encore une fois, pas testé.

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

FIN EDIT

Je n'ai pas testé, juste un code rapide, mais je pense que cela devrait vous aider à aller dans la bonne direction.

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

Désolé je n'ai pas été assez clair. – fbernier

Questions connexes