我有以下代码来生成当前日期,以便让我显示今天所采取的步骤数。
但是我想显示之前存储的7天数据,但我不确定如何让日期查询显示过去7天的每一天,以便我可以进行7次查询。我认为有可能将代码写入7次以下,其中-1 -2 -3等等,但我不确定在哪里进行调整以获得先前的日期。
有人可以为我揭开它吗?
// Calculate start of day
- (NSDate * )startDateOfToday
{
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit
fromDate:[NSDate date]];
return [calendar dateFromComponents:components];
}
感谢。
答案 0 :(得分:6)
您可以简单地将components.day
减去要删除的天数。它可以消极。示例代码:
NSCalendar *calendar = [NSCalendar autoupdatingCurrentCalendar];
NSDateComponents *components = [calendar components:NSYearCalendarUnit
| NSMonthCalendarUnit | NSDayCalendarUnit
fromDate:[NSDate date]];
for (int i = 0; i < 7; ++i) {
NSDate *date = [calendar dateFromComponents:components];
NSLog(@"%d days before today = %@", i, date);
--components.day;
}
输出:
2013-12-04 12:37:33.876 7days[62698:303] 0 days before today = 2013-12-04 06:00:00 +0000
2013-12-04 12:37:33.877 7days[62698:303] 1 days before today = 2013-12-03 06:00:00 +0000
2013-12-04 12:37:33.877 7days[62698:303] 2 days before today = 2013-12-02 06:00:00 +0000
2013-12-04 12:37:33.877 7days[62698:303] 3 days before today = 2013-12-01 06:00:00 +0000
2013-12-04 12:37:33.877 7days[62698:303] 4 days before today = 2013-11-30 06:00:00 +0000
2013-12-04 12:37:33.877 7days[62698:303] 5 days before today = 2013-11-29 06:00:00 +0000
2013-12-04 12:37:33.878 7days[62698:303] 6 days before today = 2013-11-28 06:00:00 +0000