objective-c nsdate

objective c - ¿Cómo encontrar los días de la semana a partir de la fecha de hoy usando NSDate?



objective-c (4)

Esta es la versión actualizada válida para iOS 8

NSCalendar* currentCalendar = [NSCalendar currentCalendar]; NSDateComponents* dateComponents = [currentCalendar components:NSWeekdayCalendarUnit fromDate:[NSDate date]]; return [dateComponents weekday];

Sé que puedo calcular la fecha de hoy para [NSDate date]; pero cómo me enteraría hoy día de la semana, como sábado, viernes, etc.

Sé que %w puede usarse en NSDateFormatter , pero no sé cómo usarlo.


Si alguien está interesado en una solución Swift, use:

import Foundation let weekday = NSCalendar.current.component(.weekday, from: Date()) print(weekday) // => prints the weekday number 1-7 (Sunday through Saturday)

Vea la demo .

Actualización : arreglado para trabajar en Swift 3


Versión más corta

NSCalendarUnit dayOfTheWeek = [[NSCalendar currentCalendar] component:NSCalendarUnitWeekday fromDate:yourDate];


NSCalendar* cal = [NSCalendar currentCalendar]; NSDateComponents* comp = [cal components:NSCalendarUnitWeekday fromDate:[NSDate date]]; return [comp weekday]; // 1 = Sunday, 2 = Monday, etc.

Vea la respuesta de @HuguesBR si solo necesita el día de la semana sin otros componentes ( requiere iOS 8+ ).

NSInteger weekday = [[NSCalendar currentCalendar] component:NSCalendarUnitWeekday fromDate:[NSDate date]];

(Si no obtiene una respuesta correcta, verifique si ha escrito NSCalendarUnit Weekday con otros componentes relacionados con la semana como NSCalendarUnit WeekdayOrdinal , etc.)

Swift 3:

let weekday = Calendar.current.component(.weekday, from: Date()) // 1 = Sunday, 2 = Monday, etc.