是否有任何公式可以直接从TextField中的年,月,日中找到D.O.B? InShort把21年6个月16天放在文本文件中,返回计算D.O.B?
答案 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]);
以下代码可能会对您有所帮助。
快乐编码