我需要从当前日期开始获得上一个礼拜.
所以我找到了可以重新计算当前日期添加间隔的解决方案
- dateByAddingTimeInterval
这个参数:
[[NSDate date] dateByAddingTimeInterval:-604800.0](前一周)
[[NSDate date] dateByAddingTimeInterval:-2629743.83](取得上个月)
正如我想,为了让周,这种方法运行良好,没有任何问题,因为每周有七天,间隔没有改变.但是,对于月份我们有一个问题,因为每个月有不同的天数.
解决方法
使用NSDateComponents它将是简单和准确的
NSCalendar *calendar = [NSCalendar currentCalendar]; NSDateComponents *comps = [NSDateComponents new]; comps.month = -1; comps.day = -1; NSDate *date = [calendar dateByAddingComponents:comps toDate:[NSDate date] options:0]; NSDateComponents *components = [calendar components:NSMonthCalendarUnit|NSDayCalendarUnit fromDate:date]; // Get necessary date components NSLog(@"PrevIoUs month: %d",[components month]); NSLog(@"PrevIoUs day : %d",[components day]);