我找到了答案,但不幸的是它使用的是Java。我有两次,格式为HHmm(没有冒号)。我需要弄清楚有多少15分钟的时间段。例如,我的开始时间为1000,结束时间为1130(军事时间)。
当我减去两个日期时,我得到130,这对计算没有意义。
是否有现成的方法可以帮我这么做? (我花了最后6个小时尝试SO和谷歌,但没有找到任何东西)。
更新:如果对我投降的人请反转,我将不胜感激。问题是非常相关,其他人会发现它很有用。谢谢。
答案 0 :(得分:3)
每次解析并转换为分钟。因此1000变为10小时0分钟,总共600分钟。 1130变为11小时30分钟,共计690分钟。减去两个值,差值为90分钟。现在除以15得到6。
以下假设所有时间都是4位军事时间:
NSString *startTime = @"1000";
NSString *endTime = @"1130";
int startMinues = [[startTime substringToIndex:2] intValue] * 60 + [[startTime substringFromIndex:2] intValue];
int endMinues = [[endTime substringToIndex:2] intValue] * 60 + [[endTime substringFromIndex:2] intValue];
int minutes = endMinutes - startMinutes;
int units = minutes / 15;
这给你15分钟的整个单位。
答案 1 :(得分:2)
使用 - [NSCalendar组件:fromDate:toDate:options],如下所示:
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSCalenderUnitMinute fromDate:startDate toDate:endDate options:0];
NSInteger numberOfMinutes = [components minute];
一旦你有了分钟数,它应该只需要除以15得到15分钟的数量。
答案 2 :(得分:0)
尝试使用NSDateComponents:
NSCalendar *calendar = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
NSDateComponents *components = [calendar components:NSMinuteCalendarUnit|NSHourCalendarUnit
fromDate:dateA
toDate:dateB
options:0];
int increments = components.hour*4 + components.minute/15;
答案 3 :(得分:0)
格式很简单:
int HHmm = [date intValue];
int HH = HHmm / 100;
int mm = HHmm % 100;
Diff,对于两个解析日期:
int diff = ((HH2 * 60 + mm2) - (HH1 * 60 + mm1)) / 15;