我想要做什么
我有点拼命地尝试构建一种算法,将不同公司的财务数据从财政期间转换为日历期间。
问题
会计期间通常与日历期间不对应,例如,一家公司可能报告 2011 会计年度的收入为 100 美元,但其会计年度并未在 2011 年 12 月结束,而是在 2011 年 9 月结束。例如,Apple的会计年度结束九月底。戴尔的财年于 1 月底结束,英特尔的财年于 12 月底结束。对于苹果和戴尔来说,所有财政季度和财政半年的结束也都发生了变化。
为了比较这些公司的收入或其他财务指标,我需要能够将每个会计期间转换为等效的日历期间。例如,有人可能会问,每家公司在 2011 日历年产生了多少收入。
以 Apple Corp. 为例,我们需要删除 2010 年日历期间产生的收入,这将等于 Apple 2010 财年第四季度,并加上 2012 财年第一季度(截至 2011 年 12 月)。
我有什么(数据模型)
我的数据模型对每个实体具有以下属性,calendarPeriod
并且fiscalPeriod
:
endYear
(期间结束的年份)
endMonth
(期间结束的月份数 1..12 )(期间的月数 1..12
length
)
我需要什么(迫切地)
我能做到这一点的最有效和最简短的算法是什么?
如果该算法能够处理像戴尔这样的“特殊情况”,那就太好了年。此外,该算法应该足够灵活,以处理所有周期长度和 endMonths,并在必要时尝试合并周期(例如,对于 2012 日历年的上半年,它应该尝试找到一个到 2012 年 6 月结束的六个月周期或连续添加两个时期(一个结束于 2012 年 3 月,一个结束于 2012 年 6 月,或以 2012 年 6 月结束的财政年度减去 2011 日历年的季度或半年)。
非常感谢。