我正在尝试在Objective-C中创建一个方法,该方法将从以“ HHmm”格式编写的时间值中获取分钟总数。
例如对于“ 0210”,返回值应为130。
Map<String, String> players = new HashMap<>();
map.put("Kyrie Irving", "Birth date: 23-Mar-92");
map.put("Jayson Tatum", "Birth date: 3-Mar-98");
map.put("Gordon Hayward", "Birth date: 23-Mar-90");
// and so on
问题在于小时的组成部分:它总是要休息一小时。
在这张照片上,NSDate显示了09:22时间,但是在下面的图片上,您可以看到小时部分为10(分钟部分正确设置为22)。
我查看了其他帖子(“ NSDateComponents休息时间”等),但找不到有效的解决方案。知道我在做什么错吗?
答案 0 :(得分:2)
时区/地区可能不需要加入。我可能会误会,但似乎您只是在尝试采用HHmm格式的字符串并计算总分钟数。
如果出于某些原因仍需要使用NSDate,则可以使用该功能:
+ (int)totalMinutesFromHHmm:(NSString*)HHmm
{
NSString* refHHmm = @"0000";
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"HHmm"];
NSDate* refDate = [dateFormatter dateFromString:refHHmm];
NSDate* date = [dateFormatter dateFromString:HHmm];
int minutes = [date timeIntervalSinceDate:refDate] / 60;
return minutes;
}
否则,这可能是一个更简单的选择,因为您知道将有一个由4个字符组成的字符串,代表小时和分钟:
+ (int)totalMinutesFromHHmm:(NSString*)HHmm
{
int minutes = [[HHmm substringWithRange:NSMakeRange(0, 2)] intValue] * 60;
minutes += [[HHmm substringWithRange:NSMakeRange(2, 2)] intValue];
return minutes;
}