現在の日付(3か月)を取得するにはどうすればよいですか?過去3か月間にすべてのファイルを取得するために、データベースクエリに必要です。
「dateByAddingTimeInterval」という操作は知っていますが、代わりに3か月を引く必要があります。
現在の日付(3か月)を取得するにはどうすればよいですか?過去3か月間にすべてのファイルを取得するために、データベースクエリに必要です。
「dateByAddingTimeInterval」という操作は知っていますが、代わりに3か月を引く必要があります。
3か月の定義方法によって異なります。3か月前の同じ日を意味する場合は、次のようにsthを実行できます。
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:(NSHourCalendarUnit | NSMinuteCalendarUnit | NSYearCalendarUnit |NSMonthCalendarUnit|NSDayCalendarUnit) fromDate:[NSDate date]];
NSInteger now_hour = [components hour];
NSInteger now_minute = [components minute];
NSInteger yearx = [components year];
NSInteger monthx = [components month];
NSInteger dayx = [components day];
//1 = january
NSInteger monthsMinus3 = (monthx > 3) ? monthx -3 : (monthx +12 -3);
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setMinute:now_minute];
[comps setHour:now_hour];
[comps setYear:yearx];
[comps setMonth:monthx];
[comps setDay:dayx];
NSDate *threeMonthAgo = [calendar dateFromComponents:comps];
もちろん、余分な日付を作成せずに月を変更することもできますが、デバッグしたい場合や、3か月前に-n日で定義した場合は、日を変更する可能性がある場合は、これがより明確で柔軟だと思いました。私たちがどの月にいるかによって異なります。例:-(30 + 31 + 30)、または-(31 + 30 + 31)または28日間のfebrurayを考慮する必要があります。
繰り返しますが、すべては3か月前にどのように定義するかによって異なります...しかし、これは解決策につながるはずです