2012-03-21 61 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]); 

以下代碼可能會對您有所幫助。

快樂編碼