日付変数の正規化

日付変数の要素に対して操作を実行すると、1つ以上の要素に対して無効な値が返ることがあります。例えば、2021年12月6日午後3時の日付と時刻を以下のように日付変数に格納するとします。

2021 - 12 - 06   15 : 00 : 00

月要素に値2を追加すると、下記のような日付変数になります。

2021 - 14 - 06   15 : 00 : 00

14月が存在しないので、無効です。

FLOWは、日付値を適切な値に自動的に調整します。これを正規化と呼びます。下記のセクションでは、日付変数の月、日、時、分、および秒の要素に対する正規化の仕組みを明確にします。

メモ:FLOWは1970年1月1日より前の日付を正規化しません。

「月」要素

正規化は、前年の12月を基準としています。

以下の例では、2020年12月から順算して14か月目が2022年2月です。

[2021] - [14] - [06]   [15] : [00] : [00]を[2022] - [02] - [06]   [15] : [00] : [00] に正規化します。

以下の例では、月の負の値の場合、2020年12月から逆算して2か月目は2020年10月となります。

[2021] - [-2] - [06]   [15] : [00] : [00]を[2020] - [10] - [06]   [15] : [00] : [00] に正規化します。

「日」要素

正規化は、前月の最終日を基準にしています(月によっては、28日、29日、30日、または31日となります)。

以下の例では、2020年12月31日から順算して45日目が2021年2月14日です。

[2021] - [01] - [45]   [15] : [00] : [00]を [2021] - [02] - [14]   [15] : [00] : [00] に正規化します。

以下の例では、日が負の値の場合、2020年12月31日から逆算して5日目が2020年12月26日です。

[2021] - [01] - [-5]   [15] : [00] : [00]を [2020] - [12] - [26]   [15] : [00] : [00] に正規化します。

「時」要素

正規化は、前日の午前0時を基準としています。

以下の例では、前日の午前0時から順算して34時間目が1月7日の午前10時です。

[2021] - [01] - [06]   [34] : [00] : [00]を[2021] - [01] - [07]   [10] : [00] : [00] に正規化します。

以下の例では、時が負の値の場合、前日の午前0時から逆算して10時間目は、1月5日の午後2時です。

[2021] - [01] - [06]   [-10] : [00] : [00]を [2021] - [01] - [05]   [14] : [00] : [00] に正規化します。

「分」要素

正規化は、現在の時間を基準にしています。

以下の例では、現在の午後3時から順算して70分目が午後4時10分です。

[2021] - [01] - [06]   [15] : [70] : [00]を[2021] - [01] - [06]   [16] : [10] : [00] に正規化します。

以下の例では、分が負の値の場合は、現在の午後3時から逆算して10分目が午後2時50分です。

[2021] - [01] - [06]   [15] : [-10] : [00]を [2021] - [01] - [06]   [14] : [50] : [00] に正規化します。

「秒」要素

正規化は、現在の分を基準にしています。

以下の例では、現在の午後3時00分から順算して70秒目が午後3時01分10秒です。

参考例:[2021] - [01] - [06]   [15] : [00] : [70]を[2021] - [01] - [06]   [15] : [01] : [10] に正規化します。

以下の例では、現在の午後3時00分から逆算して10秒目が午後2時59分50秒です。

参考例:[2021] - [01] - [06]   [15] : [00] : [-10] を[2021] - [01] - [06] [14] : [59] : [50] に正規化します。