2012-02-04 24 views
1

NSDateComponentsを使用して私は日コンポーネントを取得する方法を知っていますが、これは私に1から365の値を与えます。私は特定の月の1〜30日を取得する必要があります、どうすればいいですか?NSDate - 今月の予定日(今年の日ではない)?

たとえば、私はNSDateを持っていますが、これは5月16日です。私はその日を得ることができるようにしたいので、16を返します。その月の16日目(年の16日目ではありません)。

ありがとうございました。

EDIT:

私はこれを持っている:NSDateComponentsday値は4

+0

NSLogの 'comps'と、デフォルトから取得した日付オブジェクトを確認してください。 –

+0

私はそれらをNSLoggedしている、comps.dayは常に1を返すと、私は正しく保存された日付を記録することはできません?私は 'NSLog(@"%@ "、[[NSUserDefaults standardUserDefaults] objectForKey:@" dateSaved "]);'を試しました。しかし、私はそれが他の場所でそれを使用し、それから日付を設定し、それが動作するので、nullを返さないことを知っています。 –

+1

キーが正しいことを絶対に確信していて、コードの正しい時刻にこれを呼び出すのですか?これは、あなたが正しい 'NSDate'オブジェクトを取得していないことを示しているようです。 –

答えて

1

言う、としてそれは日付が保存されているものと等しくなければならないとき

NSCalendar *cal = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 
NSDateComponents *comps = [cal components:NSDayCalendarUnit fromDate:[[NSUserDefaults standardUserDefaults] objectForKey:@"dateSaved"]]; 

しかしリターン1をcomps.day指定されたカレンダーに応じて月の日を指定します。

2012-02-04 15:27:36.682 testapp[1533:f803] 2012-02-04 14:27:36 +0000/4 

となりますが、2月4日は35日目です。

+0

編集された回答と回答、あなたが手伝ってくれることを願っています。 –

関連する問題