0
0

More than 5 years have passed since last update.

次の月曜日の午後三時を取得する

Last updated at Posted at 2015-10-08

次の月曜日の午後三時が取得したい

あるあるですね。

手順

  • 次の月曜日のNSDateを取得する
  • 時間を午後三時にセットしたNSDateを取得する

# Code

//現在時刻
        var date = NSDate()
        var calendar = NSCalendar.currentCalendar()
        let baseComps = calendar.components(.CalendarUnitWeekday, fromDate: date)
        let addingComps = NSDateComponents()
//日曜日の時はこのようにすれば2-1で1日足せば良いことになる
        var addingDay = 2 - baseComps.weekday
//月曜日以降の場合は、今週の月曜になってしまうため+7する
        if addingDay<=0 { addingDay += 7 }
        addingComps.day = addingDay
//現在時刻から次の月曜日まで時間を進める
        let res = calendar.dateByAddingComponents(addingComps, toDate: date, options: nil)

//次に時刻を指定
        var comps = calendar.components(NSCalendarUnit.CalendarUnitWeekday|NSCalendarUnit.CalendarUnitYear|NSCalendarUnit.CalendarUnitMonth|NSCalendarUnit.CalendarUnitDay|NSCalendarUnit.CalendarUnitHour|NSCalendarUnit.CalendarUnitMinute|NSCalendarUnit.CalendarUnitSecond, fromDate: res!)
//15:00にセットする
        comps.hour    = 15
        comps.minute  = 0
        comps.second  = 0
//NSDateを吐き出して終わり
        let nextLimit = calendar.dateFromComponents(comps)

加算とセットで二回NSDateを吐き出すのがちょっとカッコ悪いけどこれで大丈夫です。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0