OutsytemsのInputWidget(Date)で最大値を設定する方法

OutSystems備忘録

記載内容について

今回はInput WidgetでInputTypeにDateを指定した際に入力できる最大値を設定する方法です。

久しぶりの技術系の更新の割にはみなさん当たり前のように使用している小ネタだと思いますが備忘録ですのでお許しください。

実装方法

実装方法は至ってシンプルで下記画像の通り、Input Widgetの「Attributes」に「max = “9999-12-31″」と設定してあげれば完了です。

実装結果

左に特に何もしていないInput、右にはmaxの設定を施したInputを配置し、「1」を押せる限り押した結果が以下のキャプチャになります。

左は「111111/11/11」と11万年を超えているのに対して右は「1111/11/11」となり馴染みのある年月日の見た目をしていますね。

ちなみに「1900-01-01」以上でも「年」が5桁以上になると「1900-01-01」に戻されるので注意してください。(そんな年を設定する未来はないでしょうけど)

余談

暇すぎてどこからNullに切り替わるのか遊んでいたのですが「1753/01/01」以前はNullDate(1900-01-01)になってしまってました。

気になり調べたところどうやら暦が「ユリウス暦」から「グレゴリオ暦」に切り替わったことが影響しているという何ともロマン溢れる話になっていました。

1752年の9月に大英帝国(イギリス)がユリウス暦からグレゴリオ暦に改暦しており。そのため、1752年9月には19日しか存在せず、改暦を跨いで対応できるようにすると大変なので、Sybase SQL Server(Microsoft SQL Serverの前身)ではグレゴリオ暦になってからの日付を扱うように、改暦の翌年である1753年を日付時刻型が扱える範囲の開始年としたそうです。

まさかデータ量ではなく暦の問題だとは思わず驚きました!

最後に

余談の解説の方がボリューミーでしたが少しでも皆様のお役に立てれば幸いです。

コメント

タイトルとURLをコピーしました