iOS和NSDate功能最近7天

Nei*_*Net 1 nsdate ios

我有以下代码来生成当前日期,以便让我显示今天采取的步骤数.

但是,我想显示存储的前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];
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

rob*_*off 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;
    }
Run Code Online (Sandbox Code Playgroud)

输出:

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
Run Code Online (Sandbox Code Playgroud)