我想知道如何减去两个有datepicker的textfields。并将结果显示在标签中。 例如:(25.05.2013) - (17.05.2013)= 1 周和1 天
NSDate *now = [NSDate date];
NSDate *then = self.datepicker.date;
NSTimeInterval howLong = [now timeIntervalSinceDate:then];
NSUInteger w, d;
w = (howLong / 604800);
d =
NSString *str = [NSString stringWithFormat:@" x weeks, y days", w, d];
label1.text = str;
答案 0 :(得分:0)
首先,您需要使用NSString
将NSDate
转换为NSDateFormatter
。
然后找到日期之间的间隔,这将给你几秒钟,然后你可以根据需要将其转换为分钟,日期。
NSDateFormatter *df=[NSDateFormatter new];
[df setDateFormat:@"dd.MM.yyyy"];
NSDate *date1=[df dateFromString:@"25.05.2013"];
NSDate *date2=[df dateFromString:@"17.05.2013"];
NSInteger interval = (int)[date1 timeIntervalSinceDate: date2];
* 代码未编译 - 已检查。
答案 1 :(得分:0)
尝试使用NSDateComponents
:
NSDateFormatter *form = [[NSDateFormatter alloc]init];
[form setDateFormat:@"dd.MM.yyyy"];
NSDate *dateA = [form dateFromString:@"17.05.2013"];
NSDate *dateB = [form dateFromString:@"25.05.2013"];
NSCalendar *calendar = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
NSDateComponents *components = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit
fromDate:dateA
toDate:dateB
options:0];
strDiffyear = [NSString stringWithFormat:@"%i", components.year];
strDiffmonth = [NSString stringWithFormat:@"%i",components.month];
strDiffDays = [NSString stringWithFormat:@"%i",components.day];
lblDifference.text = [NSString stringWithFormat:@"%@ years %@ months %@ days",strDiffyear,strDiffmonth,strDiffDays];
您可以使用许多组件来进行日期差异划分。
如果有任何疑问,请自由询问(: