Pergunta

Eu estou escrevendo um programa que mostra a corrente anos de vendas desde o início do ano fiscal para a data atual, em comparação com o mesmo intervalo de datas do ano anterior.

A minha pergunta é, o que os esforços que eu preciso levar para ano bissexto?

UPDATE:

OK eles querem que como eu disse (compare ano passado até mesma data), mas se hoje é ano não bissexto e no ano passado é e hoje é 28 de fevereiro comparar com o ano passado até 29. Ou se hoje é 29 de fevereiro comparar com o ano passado até 28.

Foi útil?

Solução

Com certeza isso depende do que a empresa quer que você faça. Não é esta uma questão que deve ser respondida por um contador?

Outras dicas

Esta me parece uma decisão de negócios. Dependendo do tipo de negócio, que dia extra pode não importa. Caso contrário, eu suponho que você poderia tratar é como "primeiros n dias do ano" em vez de "Janeiro 1 a X".

Aqui está uma idéia, mas como já foi dito, pode ser baseada em seu domínio específico.

  1. Considere 1 "normalizado" ano = 365,242199 dias a contar todas as coisas salto (diz que Google)
  2. Calcule a média de vendas por dia em seu ano com base no número real de dias naquele ano
  3. Escala-lo para cima ou para baixo para vendas por 365,242199 dias

Assim, por exemplo

   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

Você pode comparar isso diretamente a um cálculo semelhante para 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!

Você poderia reduza os valores de anos bissextos para levar o dia extra em conta.

Então, se você comparar, por exemplo, o 01 de setembro de um ano regular com o 01 de setembro de um ano bissexto você faria:

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

Isso deve realmente ser na especificação, no entanto.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top