2017-08-22 16 views
1

Swift 3で今週の初日を火曜日に設定するにはどうすればよいですか?スケジュールは毎週火曜日に更新されるため、最初の日は火曜日から開始する必要があります。その後、Swiftで今週の初日を火曜日に設定するにはどうすればよいですか?

とラベルに表示されます

thisWeekDate.text! = "\(first day of current week) - \(last day of current week)" 

完全なコード。

let today = NSDate() 
    let nextTue = Calendar.current.date(byAdding: .day, value: 6, to: today as Date) 
    let formatter = DateFormatter() 
    formatter.dateFormat = "yyyy-MM-dd" 
    let todayString = formatter.string(from: today as Date) 
    let nextString = formatter.string(from: nextTue!) 
    formatter.dateFormat = "dd-MMM-yyyy" 

    let calendar = NSCalendar(calendarIdentifier: NSCalendar.Identifier.gregorian) 
    let components = calendar!.components([.weekday], from: today as Date) 

    //Label code 
    thisWeekDate.text! = "\(first day of current week) - \(last day of current week)" 

    //If i can change the first day of current week this weekly update code can be deleted 
    if components.weekday == 3 { 
     print("Hello Tuesday") 
     thisWeekDate.text! = "\(todayString) - \(nextString)" 

     UserDefaults.standard.set(todayString, forKey: "todayStringKey") 
     _ = UserDefaults.standard.object(forKey: "todayStringKey") as? String 
     UserDefaults.standard.set(nextString, forKey: "nextStringKey") 
     _ = UserDefaults.standard.object(forKey: "nextStringKey") as? String 

    } else { 
     print("It's not Tuesday") 
     let RetrivedDate_1 = UserDefaults.standard.object(forKey: "todayStringKey") as? String 
     let RetrivedDate_2 = UserDefaults.standard.object(forKey: "nextStringKey") as? String 

     if let date_1 = RetrivedDate_1, let date_2 = RetrivedDate_2 { 
      thisWeekDate.text! = "\(date_1) - \(date_2)" 
     } 


    } 

アプリのデザインのスクリーンショット

App design screenshot

答えて

4

次にあなたが

var startDate = Date() 
var interval = TimeInterval() 
customCalendar.dateInterval(of: .weekOfMonth, start: &startDate, interval: &interval, for: Date()) 
let endDate = startDate.addingTimeInterval(interval - 1) 
print(startDate, endDate) 
で週間隔を得ることができますカスタムグレゴリオ暦を作成し、火曜日

var customCalendar = Calendar(identifier: .gregorian) 
customCalendar.firstWeekday = 3 

を最初の曜日を設定します

関連する問題