私がやろうとしていること
私は、さまざまな企業の財務数値を会計期間から暦期間に変換するアルゴリズムを構築しようと必死になっています。
問題
多くの場合、会計期間は暦期間と一致しません。たとえば、企業は 2011 会計年度の収益を 100 米ドルと報告する場合がありますが、その会計年度は 2011 年 12 月末ではなく 2011 年 9 月に終了します。たとえば、Appleの会計年度は次のように終了します。 9月末。デルの会計年度は 1 月末に終了し、インテルの会計年度は 12 月末に終了します。Apple と Dell についても、すべての会計四半期と会計上半期がシフトされます。
これらの企業の収益やその他の財務指標を比較するには、各会計期間を同等の暦期間に変換できる必要があります。たとえば、各企業が 2011 年の暦年にどれだけの収益を上げたかを尋ねる人がいるかもしれません。
Apple Corp. の場合、2010 暦期間に発生した収益を削除する必要があります。これは、Apple の 2010 年度第 4 四半期に相当し、2012 会計年度の第 1 四半期 (2011 年 12 月に終了) を追加する必要があります。
私が持っているもの(データモデル)
calendarPeriod
私のデータモデルには、エンティティとごとに次の属性がありますfiscalPeriod
。
endYear
(期間が終了する年) (期間が終了する
endMonth
月番号 1..12)
length
(期間の月数 1..12)
必要なもの (必死に)
これを達成できる最も効率的で短いアルゴリズムは何でしょうか?
アルゴリズムが、次の年の 1 月にひどく終了する会計年度の第 1 四半期の 1/3 を取り、それを前の四半期の最後の四半期に追加する必要がある Dell のような「特別な状況」を処理できれば素晴らしいでしょう。年。さらに、アルゴリズムは、すべての期間の長さと endMonths を処理し、必要に応じて期間を結合しようとするのに十分な柔軟性を備えている必要があります (たとえば、2012 暦年の前半の場合、2012 年 6 月に終了する 6 か月の期間を見つけようとするか、連続して追加する必要があります) 2 つの期間 (1 つは 2012 年 3 月に終了し、もう 1 つは 2012 年 6 月に終了するか、2012 年 6 月に終了する会計年度から 2011 暦年の四半期または半年を差し引いたもの)。
どうもありがとう。