2つの日付が少なくとも1時間離れているかどうかを確認しようとしています。Swiftの条件付き日付間隔を使用
if Calendar.current.dateComponents([.hour], from: jsqMessage.date, to: lastMessage.date) > 1 {
ただし、2進演算子はDateComponents型のオペランドには使用できません。どのように私の目標を達成するための任意のアイデア?
2つの日付が少なくとも1時間離れているかどうかを確認しようとしています。Swiftの条件付き日付間隔を使用
if Calendar.current.dateComponents([.hour], from: jsqMessage.date, to: lastMessage.date) > 1 {
ただし、2進演算子はDateComponents型のオペランドには使用できません。どのように私の目標を達成するための任意のアイデア?
メソッドdateComponents
は数値を返すのではなく、新しいDateComponents
オブジェクトを返します。 2つの日付間の時間数を取得するには、.hour
を追加する必要があります。 .hour
はタイプInt?
を返すので、それをアンラップする必要があります。
だからあなたのコードは、あなたが本当に比較のこれらのタイプを処理する場合は、DateComponents
やInt
上のいずれかの拡張子を書くことができ
if Calendar.current.dateComponents([.hour], from: jsqMessage.date, to: lastMessage.date).hour! >= 1 {
// Your code
}
ようなものになるだろう。それ以外の場合は、コンポーネント自体(この場合はhour
)を比較する必要があります。
if let hours = Calendar.current.dateComponents([.hour], from: jsqMessage.date, to: lastMessage.date).hour,
hours > 1 {
// Something
}
// OR
if Calendar.current.dateComponents([.hour], from: jsqMessage.date, to: lastMessage.date).hour! > 1 {
// Something
}
ありがとう。最初はうまくいきませんでしたが、私はfrom/toを逆にしていたからです。 – Sente