サポートチーム便り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では複雑すぎてしまいますのでどこまでの期間で求めるかを、考慮してからコーディングをすると良いと思います。
書き方の例としては
大の月、小の月を考慮しつつ、
先ほどの400、100、4 で割ってどうかの判定を入れる形です。
APIの説明はまたの機会の紹介とさせてください。
是非、CLだけで作ってみたい人は参考にしてみてください。
by けやきのじぃじ