Próbuję uzyskać poprzedni i przyszły miesiąc przez kliknięcie przycisku, ale zmieniło to mój rok, a nie miesiąc.Jak uzyskać poprzedni i następny miesiąc w kalendarzu
Próbuję go za pomocą this link, ale jest w Objective-C.
func firstDateOfMonth(){
let components = calendar.components([.Year, .Month], fromDate: date)
let startOfMonth = calendar.dateFromComponents(components)!
print(dateFormatatter.stringFromDate(startOfMonth)) // 2015-11-01
}
func lastDateOfMonth(){
let components = calendar.components([.Year, .Month, .Day, .Hour, .Minute, .Second], fromDate: date)
let month = components.month
let year = components.year
let startOfMonth1 = ("01-\(month)-\(year)")
var startOfMonth : NSDate?
var lengthOfMonth : NSTimeInterval = 0
calendar.rangeOfUnit(.Month, startDate: &startOfMonth, interval: &lengthOfMonth, forDate: date)
let endOfMonth = startOfMonth!.dateByAddingTimeInterval(lengthOfMonth - 1)
print(dateFormatatter.stringFromDate(endOfMonth))
}
func monthCalculation(){
firstDateOfMonth()
lastDateOfMonth()
}
@IBAction func previousMonthBtnAction(sender: AnyObject) {
let componen = calendar.components([.Day , .Month , .Year], fromDate: date)
componen.month = -1
self.date = calendar.dateFromComponents(componen)!
print(self.date)
}
@IBAction func nextMonthBtnAction(sender: AnyObject) {
}
Jak to zrobić zarówno w poprzednim, jak iw przyszłym miesiącu?
Swift 3 wersja? Wydaje się, że '' dateByAddingUnit'' został zastąpiony przez '' Calendar.current.date (przez dodanie: .day, value: days, to: date)! '' Chociaż, nie mogę już znaleźć opcji? – eonist
Swift 3.0.2, NSCalendar.current.date (przez dodanie:. Miesiąc, wartość: 1, do: daty) – KTPATEL
** Jak obsłużyć zasięg w swift3 **. 'calendar.range (.Month, startDate: & startOfMonth, interval: & lengthOfMonth, forDate: date)'. ** Błąd jest> Dodatkowy argument "forDate" w wywołaniu ** – iDeveloper