開始日と終了日をNSDateで設定して日程の重なりを判別する方法

スケジュールの期間を表すのに、開始日と終了日の2つの日を NSDate で持たせた。
こんな感じ。

@interface Schedule : NSObject
@property (nonatomic, strong) NSDate *start;
@property (nonatomic, strong) NSDate *end;
@end

で、スケジュールが重なっているかどうかを判断しようと思ったのだけど、なかなか自分では良い感じの方法が思い付かなかったのでメモ。