2011-01-23 7 views
2

月曜日かどうかを調べようとしています。私も何を疑問に思うiPhone - 月曜日かどうかを確認するにはどうすればいいですか?

#define kDateAndHourUnitsComponents NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit 
NSCalendar *calendar = [NSCalendar autoupdatingCurrentCalendar]; 

// for test and debug purpose 
NSDateComponents* b = [calendar components:kDateAndHourUnitsComponents fromDate:retDate]; 
int a=[[calendar components:kDateAndHourUnitsComponents fromDate:theDate] weekday]; 
// ----------- 

if ([[calendar components:kDateAndHourUnitsComponents fromDate:theDate] weekday] == EKMonday) DoThis.... 

しかし、これは動作しません... a、bは(aは2147483647に等しい)便利なものを含んでいない、

:私はこのように進んでこれを行うには

How to check what day of the week it is (i.e. Tues, Fri?) and compare two NSDates?

:プロセスを確認し、私もこれを見つけた

その場合には、もはや有効ではありません[calendar components:NSWeekdayCalendarUnit fromDate:retDate]の使用...することができ

私は何を見逃しましたか?

+1

括弧内にマクロ定義を入れることをお勧めします。このように: '#define kDateAndHourUnitsComponents(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit)'。そうでなければ、問題を見つけるのが非常に厄介なものを導入するのは非常に簡単です。 – detunized

+0

でも、これらは常にかっこなしでこの方法で使用されます – Oliver

答えて

3

ここ屋に行く、これは動作し、int型を介した日を返します。 7 =土 1 =日 2 =月 。 。 。

NSDate* curDate = [NSDate date]; 
int dayInt = [[[NSCalendar currentCalendar] components: NSWeekdayCalendarUnit fromDate: curDate] weekday]; 
+0

申し訳ありませんが、コンパイル時に警告が表示され、実行時にアプリケーションがクラッシュしても空白が削除されます: – Oliver

+0

申し訳ありません。今修正されています。プロジェクトに入れて検証しました。 –

+1

これは私が不思議に思うことです:これは、カレンダーアプリのユーザーの「Week Starts On」設定に依存していますか? –

関連する問題