如何找到一個文本字段值在過去的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
樂趣和單獨的時間間隔的方法。