3

我正在编写一个程序,显示从财政年度开始到当前日期的当年销售额,与前一年的同一日期范围相比。

我的问题是,我需要为闰年付出什么努力?

更新:

好的,他们想要它,就像我说的(比较去年到同一日期)但是如果今天是非闰年,去年是,今天是 2 月 28 日,与去年到 29 日相比。或者,如果今天是 2 月 29 日,则与去年的 28 日相比。

4

3 回答 3

4

这让我觉得这是一个商业决定。根据业务类型,额外的一天可能无关紧要。否则,我想您可以将其视为“一年中的前 n 天”,而不是“1 月 1 日至 X 日”。

于 2009-03-04T14:20:04.740 回答
1

这是一个想法,但就像其他人所说的那样,它可能基于您的特定域。

  1. 考虑 1 个“标准化”年 = 365.242199 天,计算所有的闰年(谷歌说)
  2. 根据当年的实际天数计算您一年中每天的平均销售额
  3. 将其放大或缩小到每 365.242199 天的销售额

所以例如

   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

您可以将其直接与 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!
于 2009-03-04T14:35:23.300 回答
0

您可以缩小闰年值以考虑额外的一天。

因此,如果您将平年的 9 月 1 日与闰年的 9 月 1 日进行比较,您会这样做:

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

不过,这确实应该在规范中。

于 2009-03-04T14:38:50.157 回答