2015-08-08 3 views
0

Мне нужно получить массив дат в 5 минут интервал, интервал 10 минут, ежедневный, ежемесячный и годовой интервал для акций. До сих пор я могу выйти только с этим предикатом, но я не уверен, как я начну выполнять интервал.Дата получения NSPredicate по интервалу

var datetime = "2014-07-14T09:00:00:+08:000" 
quoteArray = Quote.objectsWhere("date >= %@",datetime) 
+1

Пожалуйста, объясните свое мнение лучше, опишите, что вы хотите получить – shannoga

+0

Например, мне нужно получить 1 год с месячным интервалом с датами, но я не уверен, как достичь этого –

+0

Чтобы получить все даты между даты (например, январь 2015 г. и февраль 2015 г.), вы должны выполнить «date> = dateJan2015 AND date <= dateFeb2015', но если вы хотите получить детальную детализацию дня при получении в течение месяца, вы должны добавить их вручную или выполнить медиализируйте себя. Если я помню, есть '@ mean', который вы можете использовать, или' @ sum' в соответствии с тем, что вы хотите. – Larme

ответ

0

Если с учетом даты вы хотите сгенерировать следующие 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!) 
} 

Обратите внимание, что они будут разнесены на один месяц отдельно, но не обязательно на хороших дневных или месячных границах.


Чтобы получить 24 часов стоит 10-минутными интервалами, начиная с заданного времени дата:

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), если данное время не указано.

Если вы фильтруете или суммируете данные и присваиваете их интервалам, это другая проблема.

Смежные вопросы