我正在努力解决这个难题
我有这个代码计算时间IN& OUT为十进制小时:
(6分钟= 0.1小时)〜(60分钟= 1.0小时)
NSUInteger unitFlag = NSCalendarUnitHour | NSCalendarUnitMinute;
NSDateComponents *components = [calendar components:unitFlag
fromDate:self.outT
toDate:self.inT
options:0];
NSInteger hours = [components hour];
NSInteger minutes = [components minute];
if (minutes <0) (minutes -= 60*-1) && (hours -=1);
if (hours<0 && minutes<0)(hours +=24)&& (minutes -=60*-1);
if(hours<0 && minutes>0)(hours +=24)&& (minutes = minutes);
if(hours <0 && minutes == 00)(hours +=24)&&(minutes = minutes);
if(minutes >0)(minutes = (minutes/6));
self.blockDecimalLabel.text = [NSString stringWithFormat:@"%d.%d", (int)hours, (int)minutes];
绿线表示代码的作用,我要找的是像蓝线那样绕分钟,1,2分钟向下舍入到下一个小数小时,3,4,5分钟向下舍入到下一个十进制小时
我想要达到的目标是:
如果结果为11分钟,则代码返回0.1,然后仅在12分钟后返回0.2。我想要做的是,如果结果为8,则代码返回01,但如果为9,则将舍入到下一个小数,即0.2,依此类推。
目标是最多不要超过5分钟在最坏的情况下,每个倍数为6。这样做的最大损失平均为3分钟
任何输入都非常欢迎:)
干杯