Page 1 sur 1

trouver date pour Moyenne N-1 ... !!

Posté : 27 août 2007, 17:50
par Ish
Bonjour à tous,

le titre n'est pas très évocateurs car c'est assez difficile à expliquer en deux mots !!

Je suis sur une application où les utilisateurs voudrait avoir une moyenne N-1, c'est à dire la moyenne N-1 d'une période qu'ils ont choisis. Je m'explique.

Ils ont plusieurs champs de saisie dont "Date de début" et "date de fin" pour avoir un intervalle de temps. Il est facile de faire la Moyenne N, car il suffit de calculer la somme des valeurs renvoyées et divisé par le nombre de valeur renvoyées (une moyenne quoi !! :wink: )

Mais il voudrait avoir une moyenne N-1 donc s'ils choisissent "du 01/01/2007" au "30/08/2007" ...
je vais faire la même requête où la date de fin et la date de début de l'ancienne ... et je dois calculer l'intervalle de temps ... ici c'est 8 mois, pour que la date de début soit vers le "01/04/2006" ... et c'est cette date là que je voudrais trouver !!
C'est assez compliqué et je ne vois pas bien comment faire !!!

Merci

Posté : 27 août 2007, 18:21
par Sékiltoyai
Euh, je ne sais pas si je suis le seul, mais je n'ai rien compris…
Tu peux expliquer clairement ce que doit faire ta requète ?

Posté : 27 août 2007, 18:40
par VaN
t'as juste a faire quelques calculs mathématiques sur la différence de mois non ? en prenant en compte le fait que tu peux aussi passer à une année antérieure.

donc par exemple si la fourchette est 01/07/06 -> 30/03/07, tu vérifie d'abord si l'année est la meme (avec des explodes de tes dates sur le caractères / , tu mets les 3 mois de 01/03/07 à 30/03/07 dans une variable, puis tu calcule le nombres de mois qu'il restes dans la fourchette, auquel tu ajoute la variable crée avant (celle ou tu as stocké '3'), et voilà.

Enfin si j'ai bien compris ce que tu voulais faire, ça ressemble à ça.

Et si tu connais une date, et l'intervalle, c'est pareil, la deuxieme date se trouve avec des petits calculs, en pensant à vérifier si on passe sur une nouvelle année (genre if($month_year01 + $intervalle > 12) )