I would like to know if anyone can help me with my method. I have the following method, which will zero out the seconds value of a NSDate object:
- (NSDate *)dateWithZeroSeconds:(NSDate *)date {
NSTimeInterval time = round([date timeIntervalSinceReferenceDate] / 60.0) * 60.0;
return [NSDate dateWithTimeIntervalSinceReferenceDate:time];
}
The problem is when passed a date such as:
2011-03-16 18:21:43 +0000
it returns:
2011-03-16 18:22:00 +0000
I do not want this rounding to occur, as it is a user who is actually specifying the date, so it needs to be exact to the minute they request.
Any help is greatly appreciated.
Use floor instead of round:
- (NSDate *)dateWithZeroSeconds:(NSDate *)date
{
NSTimeInterval time = floor([date timeIntervalSinceReferenceDate] / 60.0) * 60.0;
return [NSDate dateWithTimeIntervalSinceReferenceDate:time];
}