Q
ココア
12
A
答えて
6
NSCalendarとNSDateComponentsを使用します。 NSDateComponentsドキュメントに示されているように:
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *date = [gregorian dateFromComponents:comps];
NSDateComponents *weekdayComponents = [gregorian components:NSWeekdayCalendarUnit fromDate:date];
int weekday = [weekdayComponents weekday];
+1
"comps"はどこから来たのですか?また、技術的に@ThisThibは、-weekdayがNSInteger値を返すことは間違いありません。私が知っているどのカレンダーでも問題ではないはずですが、正しさと移植性という名前で... ;-) –
16
NSDateクラスとNSCalendarクラスがあります。 は、たとえば、hereとhere
は、彼らが次のコードを提供します。
NSDate *today = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *weekdayComponents =
[gregorian components:(NSDayCalendarUnit | NSWeekdayCalendarUnit) fromDate:today];
NSInteger day = [weekdayComponents day];
NSInteger weekday = [weekdayComponents weekday];
28
を私が行ってきた:
NSDateFormatter* theDateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[theDateFormatter setFormatterBehavior:NSDateFormatterBehavior10_4];
[theDateFormatter setDateFormat:@"EEEE"];
NSString *weekDay = [theDateFormatter stringFromDate:[NSDate date]];
これはどのようにあなたがしたいあなたが選択させるの追加ボーナスを持っています返される平日のように(setDateFormatで日付書式文字列を変更することによって):
形成:
-1
は、ここで私が意図したとおりに機能している、と巻き取るものです。それは、日付を取る日が月の最初になるように変更し、その日の日を取得します。
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear fromDate:date];
NSDateComponents *monthDateComponents = [[NSCalendar currentCalendar] components: NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear |
NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond fromDate: date];
// build date as start of month
monthDateComponents.year = components.year;
monthDateComponents.month = components.month;
monthDateComponents.day = 1;
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
// [gregorian setFirstWeekday:1];
NSDate *builtDate =[gregorian dateFromComponents: monthDateComponents];
// NSDateComponents *weekdayComponents =[gregorian components: NSCalendarUnitWeekday fromDate: builtDate];
NSDateFormatter *df = [NSDateFormatter new];
[df setDateFormat:@"E"];
NSString *firstDay = [df stringFromDate:builtDate];
if([firstDay isEqual:@"Sun"]) // do for the other 6 days as appropriate
return 7;
関連する問題
- 1. - ココア
- 2. ココア
- 3. ココア:OSX
- 4. タイミング? - ココア
- 5. ココア/リンゴシンボルサーバ
- 6. カスタムフォーマッタ - ココア
- 7. アプリケーションデリゲート - ココア
- 8. ココア - NSXMLDocument
- 9. ココアUIアナリティクス
- 10. ココア軽量ストリング
- 11. ココア画面キャプチャ?
- 12. ココアの左カラムメニュー
- 13. ログイン項目 - ココア
- 14. ココア紛失アニメーション
- 15. <ココア/ Cocoa.h>
- 16. ココアのカウントダウンタイマー
- 17. ココア列挙
- 18. ココア:2 NSArraysは
- 19. ココアのグラフィカルインタフェースボタン
- 20. ココアのファイルウォッチャー
- 21. ココア:シンプルなタブ
- 22. ココアのカスタムシェイプトラッキングエリア
- 23. ココア自動WebView
- 24. ココアicu文書
- 25. AppleScriptとココア
- 26. タイマーのココア
- 27. IPアドレス? - ココア
- 28. ココア移動ディレクトリ
- 29. ココア自動解放
- 30. ココアのボーダーレスウィンドウとシャドウ
のObjective-CとCocoaの違いを区別してみてください。 1つを他のものなしで使用することは完全に実現可能ですが、日付の場合、私はあなたがココアについて話していると仮定します。 – dreamlax
これらは別個のエンティティですが、Objective-CをCocoaなしで使用する方が、間違いなく簡単です。たとえPythonやその他のものからCocoaを使用するとしても、クラスとメソッド呼び出しはまったく同じです。また、 "objective-c"タグはJavaやC#と同じくらいアクティブではありません。このタグを見ている人は、MacやiPhoneのプログラミングに興味があります。 –
未編集の質問をお読みですか?それはココアへの言及を全く作らなかったので、編集とコメント。 C++やSTL、C#、.NETなどと同じように区別することが重要だと思います。 – dreamlax