2つのNSDate型データの年月日だけを比較する
まーだ Objective-Cでプログラミングしてんのかよ!?って感もありますが、、、
既存のAPP、既に8000行くらい書いちゃってるし、Swiftに移行するモチベーションも無いんですよねー。
ところで、軽くハマったんですが、別のタイミングで取得されたNSDate型のデータで、時間は関係なく同じ年月日なのかどうか?だけを比較するのに NSCalendarの componentsを使ってみました。が、、、違う日なのに同じって判定するんで「おかしいなぁ、」と思ったら、、、
誤)
dateCompos1.date == dateCompos2.date
正)
dateCompos1.day == dateCompos2.day
でした。dateってやってもエラーにはならないんですけど空っぽなので常に正になっちゃいます。やれやれ。
-(BOOL) isYMDSame : (NSDate *) date1 : (NSDate *) date2 { //NSDateから年月日を取得する NSCalendar *calendar = [NSCalendar currentCalendar]; NSDateComponents *dateCompos1 = [calendar components: NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:date1]; NSDateComponents *dateCompos2 = [calendar components: NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:date2]; if (dateCompos1.year == dateCompos2.year && dateCompos1.month == dateCompos2.month && dateCompos1.day == dateCompos2.day) { return YES; } else { return NO; } }