我從服務中獲取天數,開始日期和結束日期。我想獲取開始日期和結束日期之間的所有日期列表。假設我的開始日期爲2017/08/15,結束日期爲2017/08/16,天數爲2.如何在swift中將日期添加到日期3
但是我正在獲取像這樣的日期列表。
##### CONVERTED STRING DATE 2017-08-16
##### CONVERTED STRING DATE 2017-08-17
##### CONVERTED STRING DATE 2017-08-18
而且我有這樣
開始日期2017年8月23日結束日期2017年9月1日和8日的數量與另一日期,然後我得到的名單是這樣的。
##### CONVERTED STRING DATE 2017-08-24
##### CONVERTED STRING DATE 2017-08-25
##### CONVERTED STRING DATE 2017-08-28
##### CONVERTED STRING DATE 2017-08-29
##### CONVERTED STRING DATE 2017-08-30
##### CONVERTED STRING DATE 2017-08-31
##### CONVERTED STRING DATE 2017-09-01
這是我得到的日期陣列
numberOfDates=Int(ceil(numOfDay))
//numberOfDates=numberOfDates-1
let arrayDates=self.generateDates(startDate: startDate, addbyUnit: .day, value: numberOfDates)
這是怎麼了我的日期計算方法
internal func generateDates(startDate :Date?, addbyUnit:Calendar.Component, value : Int) -> [Date]
{
//print("####START DATE#######\(startDate)")
var calendar = Calendar.current
calendar.timeZone=TimeZone.current
var datesArray: [Date] = [Date]()
for i in 0 ... value {
var addAmount:Int!
if(value==0)
{
addAmount=0
}
else
{
addAmount=1
}
if let newDate = calendar.date(byAdding: addbyUnit, value: i + addAmount, to: startDate!) {
let strDayName=self.getDayName(mydate: newDate)
if (strDayName != "Saturday" && strDayName != "Sunday")
{
datesArray.append(newDate)
}
}
}
return datesArray
}
我的問題是有時日期列表是錯誤的(第一方案),但它在第二種情況下是正確的。
感謝。你能解釋我有什麼不同嗎? – user1960169
不要使用86400秒作爲一天的持續時間(想想DST) –
@MartinR thanks.I改變了代碼。 – Alan