我正在编写一个程序,显示从财政年度开始到当前日期的当年销售额,与前一年的同一日期范围相比。
我的问题是,我需要为闰年付出什么努力?
更新:
好的,他们想要它,就像我说的(比较去年到同一日期)但是如果今天是非闰年,去年是,今天是 2 月 28 日,与去年到 29 日相比。或者,如果今天是 2 月 29 日,则与去年的 28 日相比。
我正在编写一个程序,显示从财政年度开始到当前日期的当年销售额,与前一年的同一日期范围相比。
我的问题是,我需要为闰年付出什么努力?
更新:
好的,他们想要它,就像我说的(比较去年到同一日期)但是如果今天是非闰年,去年是,今天是 2 月 28 日,与去年到 29 日相比。或者,如果今天是 2 月 29 日,则与去年的 28 日相比。
这让我觉得这是一个商业决定。根据业务类型,额外的一天可能无关紧要。否则,我想您可以将其视为“一年中的前 n 天”,而不是“1 月 1 日至 X 日”。
这是一个想法,但就像其他人所说的那样,它可能基于您的特定域。
所以例如
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!
您可以缩小闰年值以考虑额外的一天。
因此,如果您将平年的 9 月 1 日与闰年的 9 月 1 日进行比较,您会这样做:
if(year == leapyear && day > 28Feb)
Convert date to dayOfYear
leapYearValue *= dayOfYear / (dayOfYear + 1)
不过,这确实应该在规范中。