从年龄发现出生日期

时间:2012-03-21 08:24:35

标签: android iphone objective-c

是否有任何公式可以直接从TextField中的年,月,日中找到D.O.B? InShort把21年6个月16天放在文本文件中,返回计算D.O.B?

4 个答案:

答案 0 :(得分:5)

在iphone中,你没有直接的方法可以自己写作。

步骤1:从年,月,日创建一个NSDate对象。

NSDateComponents *comp = [[NSDateComponents alloc] init];
[comp setYear:year];
[comp setMonth:month];
[comp setDay:day];
 NSDate *birthdate = [[NSCalendar currentCalendar] dateFromComponents:comp];
[comp release];

第2步:从今天开始查找间隔。

NSTimeInterval dateDiff = [birthDate timeIntervalSinceNow];
int age=trunc(dateDiff/(60*60*24))/365;

编辑......

    NSDateComponents *comp = [[NSDateComponents alloc] init];
    [comp setYear:-year];
    [comp setMonth:-month];
    [comp setDay:-day];
     NSDate *birthdate = [[NSCalendar currentCalendar]dateByAddingComponents:comp toDate:[NSDate date] options:0];;
    [comp release];

答案 1 :(得分:2)

...在Java中...... 我喜欢使用Calendar来执行此操作。在您的情况下,我建议您使用add method

因此,您应该使用当前日期创建一个新的Calendar实例,设置日期和月份,然后减去年龄。

答案 2 :(得分:2)

试试这个。

Calendar c = Calendar.getInstance();
    System.out.println();
    c.add(Calendar.YEAR, -21);
    c.add(Calendar.MONTH, -6);
    c.add(Calendar.DAY_OF_MONTH, -16);
    System.out.println((c.get(Calendar.MONTH)+1)+"-"+ c.get(Calendar.DAY_OF_MONTH)+"-"+c.get(Calendar.YEAR));

答案 3 :(得分:1)

试试这个更有用

只需输入它给出差异的两个日期。

 NSDateComponents *comp=[[NSCalendar currentCalendar] components:(NSYearCalendarUnit | NSMonthCalendarUnit |  NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit) fromDate:[NSDate date] toDate:self.objDate options:0] ;

 NSLog(@"%@",[NSString stringWithFormat:@"%d : %d : %d : %d : %d : %d",comp.year,comp.month,comp.day,comp.hour,comp.minute,comp.second]);

以下代码可能会对您有所帮助。

快乐编码