以下の方法を使用して、NSDate から日数を加算または減算しています。
値をログに記録すると、時々予期しない結果が得られます。
以下はそのケースの 1 つです。
//This adds X days to the current Date and returns to the user
+(NSDate*)getRelativeDateInDays:(NSInteger)days forDate:(NSDate*)date{
NSCalendar *gregorian = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *weekdayComponents = [[NSDateComponents alloc] init];
[weekdayComponents setDay:days];
NSDate *newDate = [gregorian dateByAddingComponents:weekdayComponents toDate:date options:0];
[gregorian release];
[weekdayComponents release];
NSLog(@"start Date : %@ End Date %@",date,newDate);
newDate を返します。}
ケース 1:
2012-02-17 06:28:14.474 Application[2906:707] start Date : 2012-03-08 11:26:23 +0000 End Date 2012-03-09 11:26:23 +0000 日数 1
ケース 2:
2012-02-17 06:29:00.631 Application[2906:707] start Date : 2012-03-10 11:26:23 +0000 End Date 2012-03-11 10:26:23 +0000 日数 1
ケース 1 では、2012-03-08 11:26:23 +0000 に 1 日追加すると、2012-03-09 11:26:23 +0000 になります。
しかし、2012-03-10 11:26:23 +0000 に 1 日追加すると、2012-03-11 10:26:23 +0000 になります。
さらに1時間短縮。ここで何が問題になる可能性がありますか?この問題に直面した人はいますか?