使用NSDateComponents / NSCalendar来解读一个月的周数

时间:2013-02-27 15:29:02

标签: ios objective-c nsdate nscalendar

我一直在玩NSDates,需要比较两个日期是否在同一周。 到目前为止,我已设法使用[NSDateComponents week]来检查它们是否在一周之内。但是我需要能够检查它们是否在一个月的同一周,例如week 1 {monday-sunday}week 2 {monday-sunday}

这可以在iOS中使用吗?

1 个答案:

答案 0 :(得分:1)

虽然这听起来很可疑,但可能是家庭作业。我认为这就是你想要的,但如果你只想让它成为第3周(或其他什么)的一部分而且它在哪个月无关紧要;你可以拿出月份部分。

// Assume date1 and date2 are NSDates

NSCalendar *cal = [NSCalendar currentCalendar];

NSDateComponents *date1Components = [cal components:(NSMonthCalendarUnit | NSWeekCalendarUnit) fromDate:date1];
NSDateComponents *date2Components = [cal components:(NSMonthCalendarUnit | NSWeekCalendarUnit) fromDate:date2];

if (date1Components.week == date2Components.week &&
    date1Components.month == date2Components.month) {
    // same week of same month
} else {
    // either different week or different month (or both)
}

有关详细信息,请查看Apple的Date and Time Programming Guide