比较文本字段中的日期
compare date from textfield
我在 ViewController
中实现了两个 textFields
从和到。当用户 select 是 textField
时,他能够 select 日期从日历上。 selected 日期存储在 TextField
中
YYYY-MM-dd
格式。
并且我在 ViewController
中实现了一个计算按钮。当两个 TextField
被填充时,我需要做一些工作。
当两个 textField
都填满并且 From TextField
大于时,我想在 From TextField
日期大于 To TextField
时显示警报.
我如何比较它...?
我想你正在寻找这个功能..
NSCalendar* currentCalendar = [NSCalendar currentCalendar];
NSCalendarUnit unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute;
NSDateComponents *differenceComponents = [currentCalendar components:unitFlags fromDate:postdate toDate:[NSDate date] options:0];
NSInteger yearDifference = [differenceComponents year];
NSInteger monthDifference = [differenceComponents month];
NSInteger dayDifference = [differenceComponents day];
NSInteger hourDifference = [differenceComponents hour];
NSInteger minuteDifference = [differenceComponents minute];
希望对你有所帮助..
NSDateFormatter * df = [[NSDateFormatter alloc] init];
[df setDateFormat: @"yyyy-MM-dd"];
NSDate * dt1 ;
NSDate * dt2 ;
dt1 = [df dateFromString: txt1.text];
dt2 = [df dateFromString: txt2.text];
NSComparisonResult result = [dt1 compare: dt2];
switch (result) {
case NSOrderedAscending:
NSLog(@"%@ is greater than %@", dt2, dt1);
break;
case NSOrderedDescending:
NSLog(@"%@ is less %@", dt2, dt1);
break;
case NSOrderedSame:
NSLog(@"%@ is equal to %@", dt2, dt1);
break;
default:
NSLog(@"erorr dates %@, %@", dt2, dt1);
break;
}
希望对您有所帮助....
首先你必须将这两个文本字段字符串日期转换为 NSDate
对象,并使用日期的 compare:
方法来比较日期。
NSString *dateString1 = @"2016-05-31"; //First text field value
NSString *dateString2 = @"2016-05-31"; //Second text field value
NSDateFormatter *dateFormatter=[NSDateFormatter new];
[dateFormatter setDateFormat:@"YYYY-MM-dd"];
NSDate *date1=[dateFormatter dateFromString:dateString1];
NSDate *date2=[dateFormatter dateFromString:dateString2];
if ([date1 compare:date2] == NSOrderedDescending) {
NSLog(@"date1 is later than date2");
} else if ([date1 compare:date2] == NSOrderedAscending) {
NSLog(@"date1 is earlier than date2");
} else {
NSLog(@"dates are the same");
}
完美解决
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString *textFieldDateString1 = @"2016-07-14";
NSString *textFieldDateString2 = @"2016-07-15";
NSDate *date1 = [dateFormatter dateFromString:textFieldDateString1];
NSDate *date2 = [dateFormatter dateFromString:textFieldDateString2];
if ([date1 compare:date2] == NSOrderedDescending) {
NSLog(@"date1 is later than date2");
} else if ([date1 compare:date2] == NSOrderedAscending) {
NSLog(@"date1 is earlier than date2");
} else {
NSLog(@"dates are the same");
}
打印结果为
date1 is earlier than date2
Date Comparision
Compare Two dates
我在 ViewController
中实现了两个 textFields
从和到。当用户 select 是 textField
时,他能够 select 日期从日历上。 selected 日期存储在 TextField
中
YYYY-MM-dd
格式。
并且我在 ViewController
中实现了一个计算按钮。当两个 TextField
被填充时,我需要做一些工作。
当两个 textField
都填满并且 From TextField
大于时,我想在 From TextField
日期大于 To TextField
时显示警报.
我如何比较它...?
我想你正在寻找这个功能..
NSCalendar* currentCalendar = [NSCalendar currentCalendar];
NSCalendarUnit unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute;
NSDateComponents *differenceComponents = [currentCalendar components:unitFlags fromDate:postdate toDate:[NSDate date] options:0];
NSInteger yearDifference = [differenceComponents year];
NSInteger monthDifference = [differenceComponents month];
NSInteger dayDifference = [differenceComponents day];
NSInteger hourDifference = [differenceComponents hour];
NSInteger minuteDifference = [differenceComponents minute];
希望对你有所帮助..
NSDateFormatter * df = [[NSDateFormatter alloc] init];
[df setDateFormat: @"yyyy-MM-dd"];
NSDate * dt1 ;
NSDate * dt2 ;
dt1 = [df dateFromString: txt1.text];
dt2 = [df dateFromString: txt2.text];
NSComparisonResult result = [dt1 compare: dt2];
switch (result) {
case NSOrderedAscending:
NSLog(@"%@ is greater than %@", dt2, dt1);
break;
case NSOrderedDescending:
NSLog(@"%@ is less %@", dt2, dt1);
break;
case NSOrderedSame:
NSLog(@"%@ is equal to %@", dt2, dt1);
break;
default:
NSLog(@"erorr dates %@, %@", dt2, dt1);
break;
}
希望对您有所帮助....
首先你必须将这两个文本字段字符串日期转换为 NSDate
对象,并使用日期的 compare:
方法来比较日期。
NSString *dateString1 = @"2016-05-31"; //First text field value
NSString *dateString2 = @"2016-05-31"; //Second text field value
NSDateFormatter *dateFormatter=[NSDateFormatter new];
[dateFormatter setDateFormat:@"YYYY-MM-dd"];
NSDate *date1=[dateFormatter dateFromString:dateString1];
NSDate *date2=[dateFormatter dateFromString:dateString2];
if ([date1 compare:date2] == NSOrderedDescending) {
NSLog(@"date1 is later than date2");
} else if ([date1 compare:date2] == NSOrderedAscending) {
NSLog(@"date1 is earlier than date2");
} else {
NSLog(@"dates are the same");
}
完美解决
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString *textFieldDateString1 = @"2016-07-14";
NSString *textFieldDateString2 = @"2016-07-15";
NSDate *date1 = [dateFormatter dateFromString:textFieldDateString1];
NSDate *date2 = [dateFormatter dateFromString:textFieldDateString2];
if ([date1 compare:date2] == NSOrderedDescending) {
NSLog(@"date1 is later than date2");
} else if ([date1 compare:date2] == NSOrderedAscending) {
NSLog(@"date1 is earlier than date2");
} else {
NSLog(@"dates are the same");
}
打印结果为
date1 is earlier than date2
Date Comparision
Compare Two dates