2016-05-19 6 views
0

Ich versuche, eine Kalenderansicht innerhalb der App zu machen, ein Element, das ich wissen muss, ist der Int-Wert, auf den der erste Tag des Monats fällt. So kann ich den Rest richtig darstellen.Swift: Wie bekomme ich Wochentag von nsdate

Ich habe den folgenden Code

var CurrentDisplayDate  = NSDate() 
var calendar    = NSCalendar.currentCalendar() 
let DateComponents  = calendar.components([.Hour, .Month, .Year, .Weekday], fromDate: CurrentDisplayDate) 
let StartWeekDay  = DateComponents.weekday 

aber es mir den Wochentag für den aktuellen Tag hält was nicht der erste Tag des Monats.

Dank

+0

ist 'gleich dem aktuellen Tag oder dem ersten Tag des Monats CurrentDisplayDate'? – Sulthan

+0

Es gibt den Wochentag des aktuellen Datums, da NSDate() ** das aktuelle Datum (19/05/2016) ** bedeutet. Wenn Sie den Wochentag des Monats zuerst behalten möchten, behalten Sie den aktuellen Monat und das aktuelle Jahr bei und ändern Sie das Datum auf 1 das ist ** (1.5.2016) ** Es wird Wochentag des 1. des aktuellen Monats produzieren. – Gokul

Antwort

0

denke ich, was Sie wollen so etwas wie dieses ...

var calendar = NSCalendar.currentCalendar() 
let today = NSDate() 
let dateComponents = calendar.components([.Day, .Month, .Year], fromDate: today) 
dateComponents.day = 1 // ** set the day of month to 1 
// Get a real date back from the modified components 
if let startDate = calendar.dateFromComponents(dateComponents) { 
    // and extract the weekday from *that* date 
    let startComponents = calendar.components([.Weekday, .Month, .Year], fromDate: startDate) 
    let startWeekDay = startComponents.weekday 
} 
0

Das versuche ich hoffe, dass es hilfreich sein würde !!!

let dateFormatter = NSDateFormatter() 
let date = NSDate() 
dateFormatter.dateFormat = "yyyy-MM-dd" 
let calendar = NSCalendar.currentCalendar() 
let components = calendar.components([.Year, .Month, .Day, .Hour, .Minute, .Second], fromDate: date) 

let month = components.month 
let year = components.year 

let startOfMonth = ("\(year)-\(month)-01") 
print(startOfMonth) 

Sie können es auf eine andere Weise tun auch

let dateFormatter = NSDateFormatter() 
    let date = NSDate() 
    dateFormatter.dateFormat = "yyyy-MM-dd" 
    let calendar = NSCalendar.currentCalendar() 
    let components = calendar.components([.Year, .Month], fromDate: date) 
    let startOfMonth = calendar.dateFromComponents(components)! 
    print(dateFormatter.stringFromDate(startOfMonth))