/ / Swift: Filtrado NSDate por intervalos de tiempo - ios, swift, datepicker, nsdate, nscalendar

Swift: Filtrado NSDate por intervalos de tiempo: ios, swift, datepicker, nsdate, nscalendar

Tengo una matriz con NSDate() que el usuario agrega con una datePicker, entonces estas fechas deben filtrarse por semana actual, mes actual y año. He intentado usar NSCalendar pero no pude hacerlo funcionar. Quiero agrupar esto NSDates en diferentes matrices dependiendo del intervalo de tiempo en el que están.

Respuestas

0 para la respuesta № 1

Una forma es simplemente usar NSPredicate:

NSArray *arrayOfDates = @[
[NSDate dateWithTimeIntervalSince1970:0],
[NSDate dateWithTimeIntervalSince1970:100],
[NSDate dateWithTimeIntervalSince1970:200]
];

NSDate *leftLimit = [NSDate dateWithTimeIntervalSince1970:50];
NSDate *rightLimit = [NSDate dateWithTimeIntervalSince1970:150];
NSPredicate *dateIntervalPredicate = [NSPredicate predicateWithFormat:@"self > %@ && self < %@", leftLimit, rightLimit];
NSArray *result = [array filteredArrayUsingPredicate:dateIntervalPredicate];
NSLog(@"Result: %@", result);

Por supuesto, puedes envolverlo en una función, es solo un ejemplo.