after going crazy searching code failed ... able isolated strange behaviour. @ hapens when substracting -200 days
nsdate *now = [nsdate date]; //now 2013-07-19 nsdateformatter *format = [[nsdateformatter alloc] init]; [format setdateformat:@"yyyy-mm-dd"]; nsdate *newdate1 = [now datebyaddingtimeinterval:60*60*24*-199]; newdatetmp=[format stringfromdate:newdate1]; nslog(@"now:%@ newdatetmp:%@",now,newdatetmp); newdate1 = [now datebyaddingtimeinterval:60*60*24*-200]; newdatetmp=[format stringfromdate:newdate1]; nslog(@"now:%@ newdatetmp:%@",now,newdatetmp); newdate1 = [now datebyaddingtimeinterval:60*60*24*-201]; newdatetmp=[format stringfromdate:newdate1]; nslog(@"now:%@ newdatetmp:%@",now,newdatetmp); newdate1 = [now datebyaddingtimeinterval:60*60*24*-365]; newdatetmp=[format stringfromdate:newdate1]; nslog(@"now:%@ newdatetmp:%@",now,newdatetmp); logs:
2013-07-19 15:58:46.123 vendes[2927:907] now:2013-07-19 13:58:46 +0000 newdatetmp:2013-01-01 // ok
2013-07-19 15:58:46.124 vendes[2927:907] now:2013-07-19 13:58:46 +0000 newdatetmp:2013-12-31 // incorrect!!!! @ year
2013-07-19 15:58:46.125 vendes[2927:907] now:2013-07-19 13:58:46 +0000 newdatetmp:2012-12-30 // ok
2013-07-19 15:58:46.127 vendes[2927:907] now:2013-07-19 13:58:46 +0000 newdatetmp:2012-07-19 // ok
i guess hapopen tomorrow substracting 201 .. ?? :)
any idea?
thks
ps. solved using
nsdate *newdate1= [nsdate datewithtimeinterval:60*60*daystoadd sincedate:now]; that works daystoadd value.
it not bug. format use wrong. should be
@"yyyy-mm-dd" with lower-cased y
more information on upper-cased y :
y- year (in "week of year" based calendars). year designation used in iso year-week calendar defined iso 8601, can used in non-gregorian based calendar systems week date processing desired. may not same value calendar year.
Comments
Post a Comment