2016-09-26 9 views
-4

明日から今日までの日をどのように取得するのですか?たとえば、今日がmondayの場合、私は火曜日、水曜日、日曜日までに日を取得する必要があります。誰かが私にこれを達成する方法を教えてもらえますか?スウィフト - 今日のロケールを取得する

おかげ

+0

心はなぜdownvote私に言って? – Voyager

答えて

3

あなたが出力をしたいどのような形式に応じて、それを行うには、いくつかの方法があります。あなたは順番に整数の配列をしたいと仮定すると、あなたが使用できます。

let today = Date() 
let gregorian = Calendar(identifier: .gregorian) 
let dateComponents = gregorian.dateComponents([.weekday], from: today) 
let todaysWeekday = dateComponents.weekday! 
var otherWeekdays: [Int] = [] 
for i in 1...6 { 
    otherWeekdays.append((todaysWeekday - 1 + i) % 7 + 1) 
} 
// assuming today = 2 (Monday), otherWeekdays will contain [3, 4, 5, 6, 7, 1] 

あなたはまた、日の名前を含む文字列の配列をしたい場合は、ローカライズを気にしないならば、あなたは簡単な検索を行うことができます。堅牢なローカライズが必要とされていて、文字列だけをしたい場合は

let weekdayNames = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] 
let otherWeekdayStrings = otherWeekdays.map({weekdayNames[$0 - 1]}) 
// otherweekdayStrings will contain ["Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] 

は、あなたがたDateFormatterを使用して、このような何かを行うことができます。

let today = Date() 
let formatter = DateFormatter() 
formatter.dateFormat = "EEEE" 
var otherweekdayStrings: [String] = [] 
for i in 1...6 { 
    let timeIntervalToAdd = TimeInterval(i * 86400) 
    otherweekdayStrings.append(formatter.string(from: today.addingTimeInterval(timeIntervalToAdd))) 
} 
// Same output as previous 
関連する問題