0
我需要能夠獲得的日期陣列5分鐘間隔,10分鐘間隔,每日,每月和每年的間隔爲一個股票。到目前爲止,我只能說出這個謂詞,但我不確定我如何繼續實現區間。NSPredicate通過時間間隔獲取日期
var datetime = "2014-07-14T09:00:00:+08:000"
quoteArray = Quote.objectsWhere("date >= %@",datetime)
我需要能夠獲得的日期陣列5分鐘間隔,10分鐘間隔,每日,每月和每年的間隔爲一個股票。到目前爲止,我只能說出這個謂詞,但我不確定我如何繼續實現區間。NSPredicate通過時間間隔獲取日期
var datetime = "2014-07-14T09:00:00:+08:000"
quoteArray = Quote.objectsWhere("date >= %@",datetime)
如果給定日期,您想要生成接下來的12個月的日期,那麼使用NSCalendar。使用了遊樂場。
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'hh:mm:ss:Z"
var ds = "2014-07-14T09:00:00:+0000"
var dt = formatter.dateFromString(ds)
print(formatter.stringFromDate(dt!)) // just show what we have.
let calendar = NSCalendar(identifier: NSCalendarIdentifierGregorian)
var monthDates = [NSDate]()
for i in 1...12 {
let month = calendar?.dateByAddingUnit(NSCalendarUnit.Month, value: i, toDate: dt!, options: NSCalendarOptions.MatchStrictly)
print(month!)
monthDates.append(month!)
}
請注意,這些將相隔一個月,但不一定在美好的日期或月份邊界。
要獲得價值10個分鐘間隔24小時,以指定的日期時間:
var min10Intervals = [NSDate]()
for i in 1..144 {
let tenMinute = calendar?.dateByAddingUnit(NSCalendarUnit.Minute, value: i*10, toDate: dt!, options: NSCalendarOptions.MatchStrictly)
min10Intervals.append(tenMinute!)
}
注意,這些將在10分鐘的間隔,但不一定很好10分鐘邊界(如11:10)除非給定的日期時間。
如果您正在過濾或彙總數據並將其分配給間隔,則這是一個不同的問題。
請說明你的自我更好,描述你想得到什麼 – shannoga
例如,我需要得到1年的日期與日期數組的月間隔,但我不知道如何實現這一點 –
要獲取所有日期之間日期(例如2015年1月和2015年2月),您必須執行'date> = dateJan2015和date <= dateFeb2015',但是如果您希望獲取一個月的日間粒度,則必須手動添加它們,或者執行你的中位數。如果我記得,有一個你可以使用的「@ mean」,或者根據你想要的「@ sum」。 – Larme