如何找到一个文本字段值在过去的60天内(不包括当前日期)。如何验证NSDATE
例如,如果我在文本字段中输入值7月20日 - 2012使用Date Picker
。然后我点击提交,它会检查具体是日期是在60天内与否。如果在60天之前输入值,则显示警告消息。这些值是从api中检索的。
如何找到一个文本字段值在过去的60天内(不包括当前日期)。如何验证NSDATE
例如,如果我在文本字段中输入值7月20日 - 2012使用Date Picker
。然后我点击提交,它会检查具体是日期是在60天内与否。如果在60天之前输入值,则显示警告消息。这些值是从api中检索的。
NSDate *today = [NSDate date];
NSTimeInterval dateTime;
if ([pickerDate isEqualToDate:today]) //pickerDate is a NSDate
{
NSLog (@"Dates are equal");
}
dateTime = ([pickerDate timeIntervalSinceDate:today]/86400);
if(dateTime < 0) //Check if visit date is a past date, dateTime returns - val
{
NSLog (@"Past Date");
}
else
{
NSLog (@"Future Date");
}
更改86400的值以适合您的查询。在这种情况下,它是我们想要比较的秒数。
首先,将文本转换为NSDate
。然后使用
timeIntervalSinceDate:[NSDate dateWithTimeIntervalSinceNow:0]
有一对夫妇的方式将文本转换为NSDate
。您可以正确格式化文本,然后使用dateWithString
或者您可以将所有内容都转换为数字,将它们相乘,然后使用dateWithTimeInterval
方法之一。
如果您希望用户能够输入“七月”(纯文本月),那么您可能需要编写一个方法,将月份转换为字符串匹配的数字等值。
NSDate *lastDate; //your date I hope you have created it
NSDate *todaysDate = [NSDate date];
NSTimeInterval lastDiff = [lastDate timeIntervalSinceNow];
NSTimeInterval todaysDiff = [todaysDate timeIntervalSinceNow];
NSTimeInterval dateDiff = lastDiff - todaysDiff; // number of seconds
int days = dateDiff/(60*60*24); // 5.8 would become 5 as I'm taking int
您如何定义60天?
您可能需要使用NSCalendar
-dateByAddingComponents:toDate:options:
保证,这比60日子真的是60天。
NSCalendar
还提供了-components:fromDate:
和-dateFromComponents:
这是非常好的时候处理日期组件。
如果在60天不必是真实的日历天(夏令时间开关,天文时间校正,类似的东西),你可以有NSDate
乐趣和单独的时间间隔的方法。