サービスから日数、開始日と終了日を取得しています。私は開始日と終了日の間のすべての日付のリストを取得したい。開始日が2017/08/15で、終了日が2017/08/16で日数が2であるとします。迅速に日付に日を追加する方法3
しかし、私はこのような日付リストを取得しています。
##### CONVERTED STRING DATE 2017-08-16
##### CONVERTED STRING DATE 2017-08-17
##### CONVERTED STRING DATE 2017-08-18
そして私はその後、私はこのようなリストを取得日8.この
開始日2017年8月23日の最終日の2017年9月1日及び番号などの別の日付を持っています。
##### 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
}
私の問題である時々日付リストで間違った(第一のシナリオ)が、第2のシナリオでは正しい。
感謝をあなたの終了日を取得する少しあれば、あなたの実装を変更することができます。この違いは何ですか? – user1960169
1日の時間として86400秒を使用しないでください(DSTを考えてください) –
@ MartinsRありがとう。コードを変更しました。 – Alan