今回は「日付」アクションについてです.
※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.
レビュー時のiOSバージョン : iOS15.5
スポンサーリンク
「日付」アクション
「日付」アクションはそのままの意味で、日時や時刻を出力するアクションです.
ただしショートカットに関係なく日付には複数のフォーマットが用意されています.
出力するために追加した「日付」をタップし、「日付フォーマット」をタップするといくつかのフォーマットを選ぶことができます.
今回はこの中の一つである「カスタム」についてです.
「カスタム」にすると、「日付フォーマット」の下が画像のように変わります.
画像にもある通りここではUnicode技術標準#35というルール、記号を使うことができます.
例えばこの中で"yyyy"と書かれたものは西暦(の4桁)となって出力されます.
デフォルトで入力されているものは一例であり、こちらのサイトにある通り他にもあります.
具体的な数字や演算記号を入れるとどうなるのか
普通は上にある通りフォーマットに従って使うものです.
では具体的な数字や四則演算などの記号を入れたら、その通り計算してくれるんでしょうか?
というわけでいくつかのパターンで検証することとします.
①カスタムに書いたものをそのまま出力
「日付フォーマット」を「カスタム」にした上で、好きな計算式を書きます.
今回はその日の経過時間(h)にします.
これを「結果を表示」でそのまま出力します.
結果は画像の通りです.
HHやmmなどは正しく変換されていますが、演算自体は行われていません.
フォーマットの結果を出力してるだけですから当然ですね.
②個別のパターンで計算してから出力
HH(時)やmm(分)といった各々のパターンを一つずつ変数として「計算式」アクションで計算させ、その結果を表示します.
この場合は想像した結果が帰ってきました.
ちゃんと計算させたものを対象としたので当然ではあります.
これまで自分はこの方法が普通だと思っていました.
③「カスタム」に書いたものを計算→出力
今回のメインです.
「計算式」アクションの中に「カスタム」内で数式を書いた「日付」アクションの結果を入れ、その結果を出力します.
結果は②と同じになりました.
④数と混ぜて計算する
③のようなことができるなら、計算式で他の数や記号などと一緒に計算できるはずです.
やはり問題なく計算できました.
メリット・デメリット
この③のように「日付フォーマット」の中に数式を書く手法はメリットもあればデメリットもあります.
メリット
編集画面での数式の見た目の乱れがある程度改善されます.
とくに数式が長い場合、端末やOSのバージョンによってカクつくことがありますがそれもある程度解消されます.
また文字列として扱うため編集が楽になります.
変数として扱う場合追加やコピー、ペーストの手間が生じますがこの方法ではHHやmmなどと打つだけです.
デメリット
上の例でもわかる通り、レシピの編集画面から直接数式の内容を確認することができません.
内容を確認するためにいちいちタップしてスクロールしなければなりません.
また数式に問題があってもエラーを表示せず、空を返します.
さらに、文字列として打つタイプになった影響で変数を扱うことができなくなってしまいます.
変数と合わせるためには計算式上のその「日付」の外にしか入れられません.
言い換えれば「カスタム」内で使える「変数」は日付フォーマット(Unicode)で用意された文字列に限られます.
同じ理由で「計算式」で本来使えるはずの定数や関数の一部は「カスタム」欄では使えません.
例えばカスタム欄で"fmod(dd,7)"と書いても結果は帰ってきません.
〆
日付バグ回避のために「カスタム」を多用してきましたが、ここで計算させることを思いついたのは本当に気まぐれの偶然でした.
計算可能であれば基本的にはデメリットよりメリットが上回ると思います.