如何查找一个文本字段值是在过去 60 天内,不包括当前日期。
例如,如果我在文本字段中输入值是20-July-2012使用Date Picker
。然后我单击提交,它将检查具体日期是否在 60 天内。如果输入的值早于 60 天,则会显示警告消息。这些值是从 api 检索的。
如何查找一个文本字段值是在过去 60 天内,不包括当前日期。
例如,如果我在文本字段中输入值是20-July-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
方法。
如果您希望用户能够输入“July”(纯文本月份),那么您可能需要编写一个方法,将月份转换为具有字符串匹配的数字等价物。
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
单独使用时间间隔方法。