異なる2つの時間の差を計算するには「日付間の時間を取得」アクションがあります.
しかしこのアクションで計算できる最小単位は「秒」まで, それより小さい時間は計算してくれません.
※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.
レビュー時のiOSバージョン : iOS14.1
スポンサーリンク
日付のフォーマットを利用する
ヒントは日付のフォーマットでした.
まず時間を計測したい初めの部分に「日付」アクションを配置します.
続いて計測したいレシピを書き込んでいきます.
今回はvalueという値(初期値0)に1を1000回足し合わせるというシンプルなものを使います.
そして計測の最後を計るためにもう一つ「日付」アクションを追加します.
この2つの日付アクションから必要なデータを取り出します.
レシピによって様々でしょうが「時間がかかる処理」であれば大抵は分と秒の情報が必要です.
なのでこれを取り出して「(分)×60+(秒)」の値が欲しいとします.
というわけで「計算式」アクションに画像のように書き込みます.
「日付」アクションの名前が「start」になっていますが, これはタップして下に出てくる「名称変更」で名前を変えただけです.
同じく下に出てくる画面の「日付フォーマット」をタップし, 「カスタム」を選択します.
同じ画面に戻るので「カスタムフォーマット」の値の部分をタップし, 出てきたポップアップメニューに
分の場合 → mm
ミリ秒を含む秒の場合 → ss.SSS
と上書きします.
ここで秒の方をss.sssを全部小文字にすると違う結果になるので必ず小数点以下は大文字の半角Sにしてください.
ようはデフォルトのフォーマットはyyyy年MMMdd日EEE HH:mm:ss Zとなっていますが, ここから欲しいものだけにすればそれだけのデータを取り出せる…というわけです.
加えて秒についてはssからss.SSSとすることでミリ秒まで対応します.
これを計測終了の場合も行います.
あとは得られた値を終了時の値から開始時の値で引いたものを表示するだけです.
するとこの通りで時刻表示自体がミリ秒で表示され, その間のミリ単位の時間が計算可能になります.
〆
今回は「分」と「秒」だけを取り出して使ったので, 定時を渡って行うと「時」の計算が配慮されていませんから結果がマイナス表示になります.
なのでちゃんとやるなら「分」と「秒」だけでは足りないので「時」である"HH"も取り出し, 60×60=3600倍して足し合わせた上で差を取る必要があります.
場合によっては日付を渡る場合も考えないといけないでしょうが, 普通に使う場合は時までで十分でしょうね.