Date の distance メソッドについてのメモ
Sponsor Link
環境&対象
以下の環境で動作確認を行なっています。
- macOS Monterey 12.4
- Xcode 13.3.1
- iOS 15.4
Date
Date は、日付・時間を表す型です。
さまざまな機能がありますが、この記事では、2つの Date 間の距離を計算する distance(to:) をみてみます。
distance メソッド
distance(to:) メソッドは、2つの時間の距離(時間差)を計算する関数です。
Apple のドキュメントは、こちら。
上記のドキュメントには、”Returns the distance from this date to another date, specified as a time interval.” とあったので、常に正の値が返ってくると勘違いしていたのですが、返ってくる距離は、符号付き距離でした。
let distance = date1.distance(to: date2)
上記のコードでは、date1 の方が date2 より古い日時であれば、distance は正の数になりますが、
date1 の方が新しい日時であれば、distance は負の数になります。
以下のコードで確認できます。(Swift Playground で動作します)
import Foundation
let now = Date()
let oneMinLater = now.advanced(by: 60)
print(now.distance(to: oneMinLater)) // print-out 60.0
print(oneMinLater.distance(to: now)) // print-out -60.0
まとめ
Date の distance メソッドについて改めて説明してみました。
Date の distance メソッド
- 2つの日時の距離(時間差)を計算するメソッド
- 引数に与えた日時が より新しい日時であれば 正の数が返る
- 引数に与えた日時が 過去の日時であれば 負の数が返る
説明は以上です。
不明な点やおかしな点ありましたら、こちらまで。
Sponsor Link