Stworzyłem metodę, która ma przyjmować ciąg znaków w postaci „RRRR-MM-DD” i wypluwać int, który reprezentuje pozycję dat w odniesieniu do tygodnia, w którym się ona znajduje (niezależnie od tego, czy nakłada się na miesiące). Na przykład niedziela = 1 poniedziałek = 2 i tak dalej.
Oto mój kod:
func getDayOfWeek(today:String)->Int{
var formatter:NSDateFormatter = NSDateFormatter()
formatter.dateFormat = "YYYY-MM-DD"
var todayDate:NSDate = formatter.dateFromString(today)!
var myCalendar:NSCalendar = NSCalendar(calendarIdentifier: NSGregorianCalendar)
var myComponents = myCalendar.components(NSCalendarUnit.WeekdayOrdinalCalendarUnit, fromDate: todayDate)
var weekDay = myComponents.weekdayOrdinal
return weekDay
}
Wiem, że NSCalendarUnit.WeekdayOrdinalCalendar
to źle, ale próbowałem, myślę, że najbardziej logiczne kombinacje. A także bawić się myComponents.weekdayOrdinal
np. Używanymi mycomponents.day
lub .weekday
.
Oto moje opcje użycia:
static var EraCalendarUnit: NSCalendarUnit { get }
static var YearCalendarUnit: NSCalendarUnit { get }
static var MonthCalendarUnit: NSCalendarUnit { get }
static var DayCalendarUnit: NSCalendarUnit { get }
static var HourCalendarUnit: NSCalendarUnit { get }
static var MinuteCalendarUnit: NSCalendarUnit { get }
static var SecondCalendarUnit: NSCalendarUnit { get }
static var WeekCalendarUnit: NSCalendarUnit { get }
static var WeekdayCalendarUnit: NSCalendarUnit { get }
static var WeekdayOrdinalCalendarUnit: NSCalendarUnit { get }
static var QuarterCalendarUnit: NSCalendarUnit { get }
static var WeekOfMonthCalendarUnit: NSCalendarUnit { get }
static var WeekOfYearCalendarUnit: NSCalendarUnit { get }
static var YearForWeekOfYearCalendarUnit: NSCalendarUnit { get }
static var CalendarCalendarUnit: NSCalendarUnit { get }
static var TimeZoneCalendarUnit: NSCalendarUnit { get }
Nie jest to dla mnie jasne, ponieważ nie ma opcji DayOfWeekUnit (lub czegoś podobnego).