2016-05-19 1 views
0

Я пытаюсь сделать вид календаря в приложении, один элемент, который мне нужно знать, это значение Int, которое падает на первый день месяца. Поэтому я могу сделать остальное должным образом.Swift: Как получить будний день с nsdate

У меня есть следующий код

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

Однако он продолжает давать мне будний день на текущий день не первый из месяца.

Благодаря

+0

является 'CurrentDisplayDate' равным текущему дню или первого месяца? – Sulthan

+0

Это даст будний день текущей даты, потому что NSDate() означает ** текущую дату (19/05/2016) **. Если вы хотите в первый день месяца месяца, сохраните текущий месяц и год как есть, и измените дату на 1, то есть ** (1/05/2016) **. Он будет производить будний день 1-го числа текущего месяца. – Gokul

ответ

0

Я думаю, что вы хотите что-то вроде этого ...

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

Try Это я надеюсь, что это будет полезно !!!

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) 

Вы можете сделать это по-другому и

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))