NSDateComponents *components = [[[NSDateComponents alloc] init] autorelease];
[components setTimeZone:[ NSTimeZone timeZoneForSecondsFromGMT:(+0*3600) ] ] ;
[components setYear:2011];
[components setDay:13];
[components setMonth:5];
NSDate *date1 = [gregorianCalendar dateFromComponents:components];
NSDate *date2 = [[NSDate alloc] init];
NSTimeInterval diff = [data2 timeIntervalSinceDate:date1];
NSString *intervalString = [NSString stringWithFormat:@"%f", diff];
int second = [intervalString intValue];
int period = second/3600/24;
NSLog(@"period:%d", period);
NSLog(@"date1:%@", data1);
NSLog(@"date2:%@", data2);
在CONSOL结果是:的iOS:问题的NSDate和NSDateComponent
2011-05-12 10:57:00.406项目[297:707]周期:0;
2011-05-12 10:57:00.375项目[297:707] DATA2:2011-05-12 8点56分52秒0000
2011-05-12 10:57:00.402项目[ 297:707] data1:2011-05-13 00:00:00 +0000
我不明白为什么周期是“0”,它必须是“1”;你可以帮我吗?
然后我必须使用一个指令,每个时间段(双)在点后面都有数值。例如,如果我有1,01它必须是2或者如果我有4,67它必须是5 ....对吗? – CrazyDev 2011-05-12 09:40:11
如何使期间成双?那么你不会失去任何精度。 – 2011-05-12 09:56:07
我用“ceil”解决 – CrazyDev 2011-05-12 13:04:03