2012-03-21 95 views
2

是否有任何公式可以直接在TextField中查找D.O.B年,月,日? InShort将21年6个月16天的文本归档返回计算D.O.B?发现DateOFBirth来自年龄

+1

您可以使用当前日期作为参考并计算它! – Rakesh 2012-03-21 08:27:18

+4

你试过了什么? http://mattgemmell.com/2008/12/08/what-have-you-tried/ – 2012-03-21 08:27:27

+0

你想在_iPhone_,_Android_和_Java_,他们三个? – 2012-03-21 08:28:36

回答

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

@ravi:首先,我认为Step-1没有计算出正确的出生日期。其次,我认为你想从年龄开始出生,而不是从出生日期开始**。我对吗? – 2012-03-21 08:52:06

+1

@ParthBhatt。你是对的。我会稍后更新答案。 – Vignesh 2012-03-21 08:56:46

+0

@parth雅我不能得到正确的D.O.B,但它接近大约出生日期但月任何一年必须返回true – ravi 2012-03-21 09:17:59

2

...在Java中...... 我喜欢用日历此操作。在你的情况下,我建议你使用add method

所以你应该创建一个新的日历实例与当前日期,设置日期和月份,然后减去年龄。

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)); 
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]); 

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

快乐编码