2018.02.22
 

CLPで前日計算をする方法

Question

システムで前日の日付を求めたいです。

Convert Date to Lilian Format (CEEDAYS) API

APIを利用すれば、日付を取得することが可能のようですが、使い方が解りません。

CLはある程度解るので、CLで算出することは可能でしょうか。

Answer

通常はAPIで求めて頂くとステップも短くなり、シンプルにできる部分ですが、 今回のような部分はCLでも計算は可能です。

該当の日から、1日マイナスするだけでなく、大の月、小の月、及び閏年(うるう年)を考慮する必要があります。

うるう年を判定する方法

うるう年であるかどうかは、以下の方法で判定できます。

手順1:
判定する年が 4 で割り切れる場合は手順 2. に進みます。割り切れない場合は手順 5. に進みます。

手順2:
その年が 100 で割り切れる場合は手順 3. に進みます。割り切れない場合は手順 4. に進みます。

手順3:
その年が 400 で割り切れる場合は手順 4. に進みます。割り切れない場合は手順 5. に進みます。

手順4:
その年はうるう年です (この年は 366 日です)。

手順5:
その年はうるう年ではありません (この年は 365 日です)。

但し、期間限定としないとCLでは複雑すぎてしまいますのでどこまでの期間で求めるかを、考慮してからコーディングをすると良いと思います。

書き方の例としては

大の月、小の月を考慮しつつ、

ヒント01

先ほどの400、100、4 で割ってどうかの判定を入れる形です。

ヒント02

APIの説明はまたの機会の紹介とさせてください。

是非、CLだけで作ってみたい人は参考にしてみてください。

ページトップ

ボタン