0
我想打印日期[1,2,3 ....當前日期]但沒有得到正確的結果。 因爲當我設置第一天是我的代碼中的「1」,輸出在[2,3,4]。而當我設定的日子是「0」。它的結果顯示正確,但顯示一個額外的日期[1,2,3,4,5]。今天是2016年10月4日,作爲我的時區。日期沒有正確使用NSDate在Swift中
let date = NSDate()
let components = NSCalendar.currentCalendar().components([.Day , .Month , .Year], fromDate: date)
let year = components.year
let month = components.month
let day = 1 // Output is [2,3,4]
// let day = 0 than o/p [1,2,3,4,5]
dateFormatatter.dateFormat = "MMMM yyyy"
monthNameLabel.text = dateFormatatter.stringFromDate(date)
startDate.year = year
startDate.month = month
startDate.day = day
let startDateNSDate = calendar.dateFromComponents(startDate)!
var dateStart = startDateNSDate // first date
let endDate = NSDate() // last date
dateFormatatter.dateFormat = "dd"
while dateStart.compare(endDate) != .OrderedDescending {
// print(fmt.stringFromDate(date))
// Advance by one day:
dateStart = calendar.dateByAddingUnit(.Day, value: 1, toDate: dateStart, options: [])!
let dateFormat1 = NSDateFormatter()
dateFormat1.dateFormat = "dd-MM-yyyy"
dateArrayCalendar.addObject(dateFormatatter.stringFromDate(dateStart))
dateArrayForCompare.addObject(dateFormat1.stringFromDate(dateStart))
}
而且我想造成這樣的[1,2,3,4]
而同樣的問題在這裏
let componentsForCompare = calendar.components([.Year, .Month], fromDate: date)
let startOfMonth = calendar.dateFromComponents(componentsForCompare)!
print(startOfMonth)//2016-09-30 18:30:00 +0000
print(dateFormatatter.stringFromDate(startOfMonth)) //01
其給出不同的輸出
當我運行這段代碼時,我得到了'[「01」,「02」,「03」,「04」]' - 這裏是我的代碼,直接從我的操場 - https://gist.github.com/paulw11/278447c9678428fa584319a4d95c2fac你的代碼在你的問題中沒有完成,所以我必須聲明一些變量,也許這導致我得到不同的結果? – Paulw11
你是什麼意思? – Paulw11
如果我設置day = 1並檢入dataArray日曆,它會在後端顯示第一個日期爲30-09-2016。查看上傳圖像 – iDeveloper