web-dev-qa-db-ja.com

NSDateを使用して今日の日付から平日を見つける方法は?

今日の日付は[NSDate date];でわかりますが、土曜日、金曜日など、今日の曜日はどのようにしてわかりますか。

%wNSDateFormatterで使用できることは知っていますが、使用するかどうかはわかりません。

28
Vibhor Goyal
NSCalendar* cal = [NSCalendar currentCalendar];
NSDateComponents* comp = [cal components:NSCalendarUnitWeekday fromDate:[NSDate date]];
return [comp weekday]; // 1 = Sunday, 2 = Monday, etc.

他のコンポーネントなしで平日が必要な場合は、 @ HuguesBR の回答を参照してください(iOS 8 +が必要です)。

NSInteger weekday = [[NSCalendar currentCalendar] component:NSCalendarUnitWeekday 
                                                   fromDate:[NSDate date]];

(正しい答えが得られない場合は、NSCalendarUnitWeekdayなどの他の週関連のコンポーネントとNSCalendarUnitWeekdayOrdinalを誤って入力していないかどうかを確認してください。)


スウィフト3:

let weekday = Calendar.current.component(.weekday, from: Date())
// 1 = Sunday, 2 = Monday, etc.
75
kennytm

誰かがSwiftソリューションに興味がある場合は、次を使用します。

import Foundation

let weekday = NSCalendar.current.component(.weekday, from: Date())
print(weekday) // => prints the weekday number 1-7 (Sunday through Saturday) 

デモ を参照してください。

Update:Swift 3

3
Dmitri Pavlutin

短いバージョン

NSCalendarUnit dayOfTheWeek = [[NSCalendar currentCalendar] component:NSCalendarUnitWeekday fromDate:yourDate];
1
Hugues BR

これはiOS8で有効な更新バージョンです

NSCalendar* currentCalendar = [NSCalendar currentCalendar];
NSDateComponents* dateComponents = [currentCalendar components:NSWeekdayCalendarUnit fromDate:[NSDate date]];
return [dateComponents weekday];
1
let today = Date()
let day = Calendar.current.dateComponents([.weekday], from: today).weekday
if ( day == 5)
    {
        yourText.text = "Thursday"
    }
1
alita