對於iOS SDK,我需要找到一個簡單而安全的方法來查看NSDate是否是今天,昨天,明天。我正在尋找的東西是這樣的僞代碼:找出NSDate是否是今天,昨天,明天
NSDate *myDate = someDate;
if ([myDate isTomorrow]) {
NSLog("Tomorrow");
}
你會如何解決它?
對於iOS SDK,我需要找到一個簡單而安全的方法來查看NSDate是否是今天,昨天,明天。我正在尋找的東西是這樣的僞代碼:找出NSDate是否是今天,昨天,明天
NSDate *myDate = someDate;
if ([myDate isTomorrow]) {
NSLog("Tomorrow");
}
你會如何解決它?
檢查我們的埃裏卡Sadun的偉大NSDate
extension
類:http://github.com/erica/NSDate-Extensions
有很多的日期比較,其中有你需要的東西:)
與播放後找到了這一點,它似乎有一些問題,例如與夏令時也dateBysubstractingDays不工作。這是一個很好的延伸,但並不總是那麼安全。 – mrrmatinsi 2010-11-26 14:40:02
對於那些將閱讀評論:項目已經更新了好幾次,所以不用擔心,一切都應該正常工作。 – Nekto 2012-10-30 03:44:45
埃裏卡的代碼*正是*我正在尋找和NSDate偉大的實用工具類別。強烈推薦。 – 2013-01-21 16:08:13
我明白,這是很老,但我想帶答案是最新的(因爲我沒有看到其他人發佈了更新的答案)。
由於iOS的8.0你有一堆的,你可以使用日期比較功能:
參見下例:
NSDate *today = [NSDate new];
NSCalendar* calendar = [NSCalendar currentCalendar];
BOOL isToday = [calendar isDateInToday:today];
BOOL isYesterday = [calendar isDateInYesterday:today];
isToday將是YES。
isYesterday將沒有,因爲我們給它今天的日期。
請參閱Apple's Documentation進一步閱讀。
斯威夫特3
let isToday = Calendar.current.isDateInToday(yourDate)
然後,您可以檢查該值,並用簡單的進行相應處理:
if isToday {
//If true, do this
}
也有類似的功能,爲了明天,週末,和其他幾個人,例如:
let isTomorrow = Calendar.current.isDateInTomorrow(yourDate)
This guide它們都在Objective-C和Swift中:
的可能重複[比較NSDate的當天或前一天(http://stackoverflow.com/questions/2893835/compare-nsdate-for-today-or-yesterday) – 2010-10-29 14:08:32