[解決済み] NSDateを取得する 今日、昨日、今週、先週、今月、先月... 変数
2023-04-22 02:37:56
質問
私がしようとしていることは、UITableViewのtitleForHeaderInSectionに追加されるヘッダーの比較のために、NSDate today, yesterday, this Week, last Week, this Month, last Month変数を準備することです。
私が望むことは、日付2009-12-11のために以下のコードで手動で行われます。
NSDate *today = [NSDate dateWithString:@"2009-12-11 00:00:00 +0000"];
NSDate *yesterday = [NSDate dateWithString:@"2009-12-10 00:00:00 +0000"];
NSDate *thisWeek = [NSDate dateWithString:@"2009-12-06 00:00:00 +0000"];
NSDate *lastWeek = [NSDate dateWithString:@"2009-11-30 00:00:00 +0000"];
NSDate *thisMonth = [NSDate dateWithString:@"2009-12-01 00:00:00 +0000"];
NSDate *lastMonth = [NSDate dateWithString:@"2009-11-01 00:00:00 +0000"];
どのように解決するのですか?
もっと良い書き方があるかもしれませんが、BenさんのNSCalendarの提案から、NSDateComponentsに辿り着いた方法を紹介します。
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents *components = [cal components:( NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond ) fromDate:[[NSDate alloc] init]];
[components setHour:-[components hour]];
[components setMinute:-[components minute]];
[components setSecond:-[components second]];
NSDate *today = [cal dateByAddingComponents:components toDate:[[NSDate alloc] init] options:0]; //This variable should now be pointing at a date object that is the start of today (midnight);
[components setHour:-24];
[components setMinute:0];
[components setSecond:0];
NSDate *yesterday = [cal dateByAddingComponents:components toDate: today options:0];
components = [cal components:NSWeekdayCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:[[NSDate alloc] init]];
[components setDay:([components day] - ([components weekday] - 1))];
NSDate *thisWeek = [cal dateFromComponents:components];
[components setDay:([components day] - 7)];
NSDate *lastWeek = [cal dateFromComponents:components];
[components setDay:([components day] - ([components day] -1))];
NSDate *thisMonth = [cal dateFromComponents:components];
[components setMonth:([components month] - 1)];
NSDate *lastMonth = [cal dateFromComponents:components];
NSLog(@"today=%@",today);
NSLog(@"yesterday=%@",yesterday);
NSLog(@"thisWeek=%@",thisWeek);
NSLog(@"lastWeek=%@",lastWeek);
NSLog(@"thisMonth=%@",thisMonth);
NSLog(@"lastMonth=%@",lastMonth);
関連
-
[解決済み] Cocoapodsの使用時にXcodeの警告を無視する
-
[解決済み】NSDateで年/月/日を取得する。
-
[解決済み】ある日付から曜日を求めるには?
-
[解決済み] iOSシミュレータでファイルシステムを確認する方法はありますか?
-
[解決済み] UITableViewCellのサブビューがセルを選択すると消えてしまう
-
[解決済み] Objective-C 2.0でメソッドに非推奨のフラグを立てるにはどうすればよいですか?
-
[解決済み] 指定されたエンタイトルメント...プロファイルです。(0xE8008016)と表示されました。エラー iOS 4.2
-
[解決済み] position: iPadとiPhoneで固定が効かない。
-
[解決済み] NSDateを年、月、日、時、分、秒の各スタイルにフォーマットする。
-
[解決済み] UILabelがラベルサイズに合うようにテキストを自動縮小しない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 私のアプリケーションは「暗号を含む」のでしょうか?
-
[解決済み】「推奨アイコンファイルがありません - バンドルには、ちょうど「120x120」ピクセル、.png 形式の iPhone / iPod Touch 用のアプリアイコンが含まれていません。
-
[解決済み] レビュー待ちの状態でバイナリを拒否する(バイナリ拒否ボタンが見つからない)
-
[解決済み] プロダクションコードでNSLog()を使ってはいけないというのは本当ですか?
-
[解決済み] UITableViewHeaderFooterView。背景色を変更できない
-
[解決済み] iPhoneのTableViewのCellの右側に小さな矢印を追加する
-
[解決済み] iPhone UIViewアニメーションのベストプラクティス
-
[解決済み] iPhone 5 CSSメディアクエリ
-
[解決済み] all_loadリンカーフラグは何をするのですか?
-
[解決済み] iOSです。2つの日付を比較する