0

如何查找一个文本字段值是在过去 60 天内,不包括当前日期。

例如,如果我在文本字段中输入值是20-July-2012使用Date Picker。然后我单击提交,它将检查具体日期是否在 60 天内。如果输入的值早于 60 天,则会显示警告消息。这些值是从 api 检索的。

4

4 回答 4

1
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 的值以适合您的查询。在这种情况下,它是我们要比较的秒数。

于 2012-07-26T12:22:27.057 回答
0

首先,将文本转换为NSDate. 然后使用

timeIntervalSinceDate:[NSDate dateWithTimeIntervalSinceNow:0]

有几种方法可以将文本转换为NSDate. 您可以正确格式化文本,然后使用dateWithString或者您可以将所有内容转换为数字,将它们相乘,以及其中一种dateWithTimeInterval方法。

如果您希望用户能够输入“July”(纯文本月份),那么您可能需要编写一个方法,将月份转换为具有字符串匹配的数字等价物。

于 2012-07-26T12:17:25.697 回答
0
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
于 2012-07-26T12:23:00.177 回答
0

你如何定义60天?

您可能要使用NSCalendar -dateByAddingComponents:toDate:options: 来确保您的 60 天确实是 60 天

NSCalendar还提供了处理日期组件时非常好的-components:fromDate:-dateFromComponents:

如果 60 天不需要是真正的日历日(夏令时开关、天文时间校正等),您可以NSDate单独使用时间间隔方法。

于 2012-07-26T12:23:42.310 回答