1

我有一个UIDatePicker将当前选择的日期存储到文本字段中。我想要另一个文本字段来计算一个人(作为一个整体)的年龄,具体取决于输入的日期,例如“15”。但我不确定该怎么做。谁能指出我正确的方向。这是我到目前为止所拥有的。

-(void)viewDidAppear:(BOOL)animated{
    [birthdayDatePicker addTarget:self
                   action:@selector(dateChanged:)
         forControlEvents:UIControlEventValueChanged];
}

- (void) dateChanged:(id)sender{
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    dateFormatter.dateStyle = NSDateFormatterLongStyle;
    birthdayTextField.text = [NSString stringWithFormat:@"%@",
                   [dateFormatter stringFromDate:birthdayDatePicker.date]];
    //look at todays date, subtract date in birthdayTextField to calculate age maybe?

}
4

2 回答 2

1

在您完成输入的日期设置后,您现在可以根据今天的日期计算年龄。您可以阅读如何使用以下链接计算日期间隔

目标 C - 计算两个日期之间的天数

或者

http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/DatesAndTimes/Articles/dtDates.html

于 2013-08-08T05:52:15.630 回答
1

你可以试试这个

- (void) dateChanged:(id)sender{
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
    NSString *startdate= [NSString stringWithFormat:@"%@",
                              [dateFormatter stringFromDate: birthdayDatePicker.date]];

    NSDate *End=[dateFormatter dateFromString:[dateFormatter stringFromDate:[NSDate date]]];

    NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    NSDateComponents *components = [gregorianCalendar components:NSYearCalendarUnit
                                                        fromDate:[dateFormatter dateFromString:startdate]
                                                          toDate:End
                                                         options:0];
 birthdayTextField.text=[NSString stringWithFormat:@" %d years old",components.year];

}
于 2013-08-08T06:03:34.967 回答