Prise en compte de l'année bissextile dans la comparaison des ventes d'une année sur l'autre

StackOverflow https://stackoverflow.com/questions/610752

  •  03-07-2019
  •  | 
  •  

Question

J'écris un programme qui affiche les ventes de l'exercice en cours depuis le début de l'exercice financier jusqu'à la date du jour, par rapport à la même période de l'année précédente.

Ma question est la suivante: quels efforts dois-je déployer pour une année bissextile?

MISE À JOUR:

OK, ils le veulent comme je l’ai dit (comparez l’année dernière à la même date), mais si aujourd’hui est une année non bissextile et que l’année dernière se situe au 28 février, comparez-vous à l’année précédente. Ou si aujourd'hui est le 29 février comparé à l'an dernier jusqu'au 28 avril.

Était-ce utile?

La solution

Cela dépend sûrement de ce que l’entreprise vous demande de faire. N’est-ce pas une question à laquelle un comptable devrait répondre?

Autres conseils

Cela me semble être une décision d’affaires. Selon le type d’entreprise, cette journée supplémentaire n’a peut-être pas d'importance. Autrement, je suppose que vous pourriez traiter comme "les premiers n jours de l’année". plutôt que "Jan 1 à X".

Voici une idée, mais comme d'autres l'ont déjà dit, elle pourrait être basée sur votre domaine spécifique.

  1. Considérez 1 "normalisé". année = 365.242199 jours en comptant tous les trucs de saut (dit Google)
  2. Calculez les ventes moyennes par jour de votre année en fonction du nombre réel de jours de cette année
  3. Augmentez ou réduisez le chiffre d'affaires en 365.242199 jours

Ainsi, par exemple

   2007 = $4000 in sales.
   There's 365 days in 2007, so avg sale per day = $10.96
   Multpiplying times num days in a normalized year (365.242199) 
      gives you $4003.05 normalized sales

Vous pouvez comparer cela directement à un calcul similaire pour 2008,

   2008 = $5000 in sales.
   There's 366 days in 2008, so avg sale per day = $13.66
   Multpiplying times num days in a normalized year (365.242199) 
      gives you $4975.655 normalized sales for 2008!

Vous pouvez réduire les valeurs de l'année bissextile pour prendre en compte le jour supplémentaire.

Donc, si vous comparez, par exemple, le 1er septembre d’une année régulière au 1er septembre d’une année bissextile, vous obtiendrez ce qui suit:

if(year == leapyear && day > 28Feb)
    Convert date to dayOfYear
    leapYearValue *= dayOfYear / (dayOfYear + 1)

Cela devrait vraiment être dans la spécification, cependant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top