⚒️

【DataSpider】西暦をジュリアン日付(ユリウス通日)に変換する

2022/07/18に公開

はじめに

この記事を読まれる方はジュリアン日付(ユリウス通日)を西暦に変えたいって思う人が大半だと思うので、ジュリアン日付とは!?についてはこちらの記事をサクッと参照してください。

https://ja.wikipedia.org/wiki/ユリウス通日#:~:text=ユリウス通日(ユリウスつうじ,は小数が付けられる。

基幹システムがジュリアン日付を採用している場合、最新○日分のデータ抽出をしたいという場合に西暦変換がっ必須となります。
つまり処理開始の日時(もしくは-n日とか)をジュリアン日付に変換して、その変換した日付で期間システムに抽出をかけに行くわけですね。

今回はメイン処理から呼び出されるスクリプトを作成します。
インプットとして西暦日付をもらって、それをジュリアン日付に加工して、もとのスクリプトにジュリアン日付を返す処理となります。

ライブラリの全体

このライブラリに必要なスクリプト変数は
・StartDate_Normal
・EndDate_Normal
・StartDate_Julian
・EndDate_Julian
の4つ。
上2つは本ライブラリに渡してもらう入力変数で、下2つは呼び出し元のスクリプトに返す出力変数です。

ライブラリは2つのコンポーネントだけです。
ホントは1つにまとめられますが、あえて2つに。

StartDateとEndDateでそれぞれコンポーネントを作っていますが、やってることは同じです。

ジュリアン日付変換

ジュリアン日付の変換は年と月日でわかれます。
年は

(取得したい年月日の年) - 1900

月日は

(取得したい年月日の月日) - 01/01

となります。
年は数値で計算し、月日は日付の日数計算をします。

最後に計算した年と月日をあわせて6桁の文字列とします。

実際のコンポーネントがこちら。

図の右下の赤枠を見ると、西暦がジュリアン日付に変換されていることが確認できます。

注意点としては月日の日付計算をしたときに必ず3桁で返す必要があります。計算次第では1桁や2桁になってしまうので、必ず0埋めの処理は入れましょう。

数値フォーマット変数をつかえばゼロ埋めが可能です。
https://www.hulft.com/help/ja-jp/DataSpider/dss43/help/ja/mapper/variable/logic/decimalFormat.html

さいごに

本処理はジュリアン日付を使用しているシステムからデータ抽出をする際に、現在時刻(またはそこから-n日)をした西暦をジュリアン日付に変更するライブラリです。
このライブラリを呼び出して、ジュリアン日付でデータ抽出をするようにすると、汎用的にデータ抽出ができるかと思います。

Discussion