#PowerApps 「日付の選択」コントロールの底と天井を調べてみる

Power Apps の「日付の選択」コントロール（Date Picker コントロール）で年齢計算をしていた時に思ったんですよ。最大と最小ってドコなんだろう？と。

https://qiita.com/yamad365/items/df51fb166af7708d0ecb

あのですね。上記の年齢計算でジョナサンなど生年月日が判明しているキャラでスクショを取ろうと思ったんですよ。

https://wikiwiki.jp/jojo2ch/%E3%83%87%E3%83%BC%E3%82%BF/%E5%B9%B4%E9%BD%A2%E6%97%A9%E8%A6%8B%E8%A1%A8/editor

そしたら・・・ってなったので、気になって調べてみた、です。

# 日付の選択 コントロール
公式情報は下記です。

https://learn.microsoft.com/ja-jp/power-apps/maker/canvas-apps/controls/control-date-picker?WT.mc_id=BA-MVP-5004053

# 初期状態
キャンバスアプリを作成して「日付の選択」コントロールを配置します。そのまま実行してみましょう。［年］が表示されている箇所をクリックすると西暦を変更できます。

ガンガン上方向にスクロールすると最小値にたどり着くはずです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215892/18acb503-f115-cc3b-808c-d7c214bcfe3a.png)

1970年が底みたいんですね。これが初期状態の最小値だとわかりました。

ジョセフ（1920年09月27日	生まれ）が指定できないじゃないかッ（憤慨
ってなったんですよねｗ

次に、グリグリに下方向へスクロールすると最大値です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215892/ab6cfa9d-fdbd-d956-ef7a-c11048c9bf72.png)

2050年が天井でした。最大値です。

## EndYear／StartYear プロパティ
上記で調べた最小と最大は、プロパティが用意されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215892/810ce6a0-2e2a-06d1-89f7-ba9a5328fc66.png)
先ほど調べた値が設定されいますね。
つまり［日付の選択］コントロールは初期値が

　StartYear ＝ 1970（年）
　EndYear ＝ 2050（年）

であるみたいです。（記事投稿 2023年2月3日 時点）

# 最小値の最小と最大値の最大は？
上記の調査で、最小・最大値を指定するプロパティが判明しました。
今度は、そのプロパティを変更して底と天井がどこまで変更可能か？を調べてみます。

## 調査用の設定
下記のように設定してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215892/e4b21c6b-2322-24d6-47f6-02b1eaaca64b.png)


■設定値
　StartYear ＝ 0（年）
　EndYear ＝ 9999‥‥（年）※

※にした理由です。EndYear（最大値）プロパティに設定した値ですが、

99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215892/d0871297-aa53-d86c-3445-68333aafeb0c.png)
 まで入力してもエラーになりませんでした。ので、そのまま検証を継続します。

## ちなみに

999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999990
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215892/63ebe8b1-3e60-ee25-2366-98473488ebc1.png)

だとエラーになります。
(´ω`)。○○（このプロパティの型は何なんだろうね・・・ｗ）

## 実行してみる！
まずは最小値から。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215892/0babb2b5-f6f4-b313-2b72-c0f51eeb3102.png)

1000年 が最小になりました。
0年じゃないです。

つぎ！最大値はどうだ？

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215892/d277983f-00b8-d0fc-5873-08de9b101194.png)

9999年 が最大になります。
めっちゃ 9 を連続して入力してギリギリ最大であろうトコまで頑張って仕込みをしたのに！
4桁かよ！もっとこいよ！
みたいな気持ちになったり、ならなかったりしました😇

# StartYear > EndYear の場合は？
上記の調査用設定、StartYear と EndYear を逆にしてみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215892/ad4e7fff-57c5-f091-af0a-a6a173e41e31.png)
「開始 ＜ 終了」 ではなくて「開始 ＞　終了」 ってことです。日付の概念として ありえない 組み合わせですが、Power Apps 上ではエラーも警告も表示されません。

そのまま実行してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215892/3126382b-a1f9-18d4-55a7-7efbfc9fb5ad.png)
9999年しか選択肢に表示されません。

# まとめ
記事投稿時点（2023年2月3日）の調査結果ですが、

［日付の選択］コントロールの最小値は 1000年、最大値は 9999年

という結果である、と言えそうです。
なお、公式サイトに明記されていません😇

検証結果から想定するに、日付の選択コントロールの年は4ケタ固定であると考えられます。少なくとも超古代や遠い未来をアレコレするアプリを作成しない限りは覚えておく必要が無いであろう知識です。

ただ、初期設定ではまかなえない範囲の西暦が必要になった場合は、StartYear と EndYear プロパティを思い出してあげてください。

それでは皆さま、素晴らしい Power Platform Life を！！