如何实现前一天的按钮来更改iPhone中的日期

时间:2013-01-28 10:00:11

标签: iphone objective-c datepicker nsdate nsdateformatter

Screenshot Provided

如上页所示,我在标签上有一个日期(默认为当前日期)。采用MM dd。

的格式

我有两个按钮可以在第二天更改日期&前一天。

我应该如何使用这些按钮实现更改日期?

任何教程/建议(我认为这里没有涉及datepicker)

2 个答案:

答案 0 :(得分:1)

使用这两个功能获取上一个日期和下一个日期,然后使用返回的日期,并仅使用月份和年份显示在您的标签上。

+ (NSDate *) getDate:(NSDate *)fromDate daysAgo:(NSUInteger)days
{
    NSDateComponents *dateComponents = [[NSDateComponents alloc] init];
    dateComponents.day = -1*days;
    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDate *previousDate = [calendar dateByAddingComponents:dateComponents
                                                     toDate:fromDate
                                                    options:0];
    [dateComponents release];
    return previousDate;
}

+ (NSDate *) getDate:(NSDate *)fromDate daysAhead:(NSUInteger)days
{
    NSDateComponents *dateComponents = [[NSDateComponents alloc] init];
    dateComponents.day = days;
    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDate *previousDate = [calendar dateByAddingComponents:dateComponents
                                                     toDate:fromDate
                                                    options:0];
    [dateComponents release];
    return previousDate;
}

答案 1 :(得分:-1)

尝试这些方法

- (NSDate *) dateByAddingDays: (int) dDays : (NSDate*)presntdate
{
NSTimeInterval aTimeInterval = [presntdate timeIntervalSinceReferenceDate] + 86400 * dDays;
NSDate *newDate = [NSDate dateWithTimeIntervalSinceReferenceDate:aTimeInterval];
return newDate;
}

- (NSDate *) dateBySubtractingDays: (int) dDays : (NSDate*)presntdate
{
return [self dateByAddingDays: dDays*-1 :presntdate];
}