使用Objective-C计算年龄使用Objective-C
问题描述:
我正在使用Xcode创建应用程序,我需要验证用户的年龄。我是一个新手,我有点与Objective-C挣扎。使用Objective-C计算年龄使用Objective-C
我已经使用UITextField以DD/MM/YYYY格式从用户获得输入。我也知道如何使用NSDate获取当前日期并使用NSDateFormatter。当我需要比较两年或两年的日期时,我的问题就出现了。
这是我的代码片段:
NSDate *today = [NSDate date];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"dd/MM/yyyy"];
NSString *dateString = [dateFormat stringFromDate:today];
int PresentYear = (int)[dateString substringToIndex:-4];
int InputYear = (int)[DOB.text substringToIndex:-4];
if(PresentYear-InputYear<18)
我似乎无法明确地将其转换为整数。有没有其他方式做到这一点?
在此先感谢!
答
你已经全部倒退了。
将输入日期转换为NSDate
。与[NSDate date]
比较。通过询问描述日期之间差异的NSDateComponents
的日历*(currentCalendar
将完成),这样做最容易。查看year
属性。
当NSDateFormatter
为您提供的内容时,不要编写自己的小字符串解析。
(*)年份并不重要,因为日历都基本同意。但是如果你打算在几个月内获得差异,那么它会 - 例如,中国历法在闰年有13个月。
答
NSDate *today = [NSDate date];
NSCalendar* calendar = [NSCalendar currentCalendar];
unsigned units = NSCalendarUnitYear| NSCalendarUnitMonth| NSCalendarUnitDay;
NSDateComponents* components = [calendar components:units fromDate:today];
NSInteger year = [components year];
这将从今天获得年。
NSInteger inputYear = [[dateString substringFromIndex:6] integerValue];
这将从输入字符串中获得年份。
Got it! :D!谢谢你:) – Su1234 2014-10-08 18:29:54