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.