【问题标题】:Accounting for leap year in comparing year to year sales在比较年度销售额时考虑闰年
【发布时间】:2010-05-04 08:47:48
【问题描述】:

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

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

更新:

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

【问题讨论】:

    标签: statistics leap-year


    【解决方案1】:

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

    【讨论】:

    • 如果我这样做了,并且只在年底的同一天比较了去年和今年,所以如果今天是 365 天,这一年就结束了,但它不会与前一年相比。
    • @unknown:如果是这样,您可以将这两年一起比较,然后“减去”2 月 29 日的销售额并分别显示。这样您就可以进行相当准确的 365-365 比较。
    • @unknown:这就是为什么这是一个商业决策。我们很高兴指出需要解决的问题,但最终你们将不得不选择一个实现。
    • @pesto 好的,我将从负责人那里获取更多需求信息,然后编辑我的帖子以使其更具体。
    【解决方案2】:

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

    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!
    

    【讨论】:

      【解决方案3】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2021-01-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-15
        • 2014-06-30
        • 1970-01-01
        相关资源
        最近更新 更多