Tôi đang cố gắng để có được tháng trước và tháng tiếp theo bằng cách nhấp vào nút nhưng điều này đã thay đổi năm của tôi, không phải tháng.Cách lấy tháng trước và tháng tiếp theo theo lịch
Tôi đang thử sử dụng this link nhưng trong Mục tiêu-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) {
}
Vậy làm cách nào để thực hiện nó cho cả tháng trước và tháng tiếp theo?
Phiên bản Swift 3? '' dateByAddingUnit'' dường như đã được thay thế bởi: '' Calendar.current.date (byAdding: .day, value: days, to: date)! '' Mặc dù, tôi không thể tìm thấy các tùy chọn nữa? – eonist
Swift 3.0.2, NSCalendar.current.date (byAdding: .month, value: 1, to: date) – KTPATEL
** Cách xử lý phạm vi trong swift3 **. 'calendar.range (.Month, startDate: & startOfMonth, interval: & lengthOfMonth, forDate: date)'. ** Lỗi là> Thêm đối số 'forDate' trong cuộc gọi ** – iDeveloper