美文网首页
计算两个时间之间的差值

计算两个时间之间的差值

作者: 齐小天_Liu | 来源:发表于2017-05-25 15:45 被阅读337次

最近有一个功能,需要计算同一天内两个时间之间的差值,开始打算将NSDate先转换成NSString,然后转后成int类型数据进行换算对比。
但是这种方法太过繁琐,时间之间的对比要逐一对比小时分钟,然后还要将结果进行转换,实在是麻烦。这里我使用了NSCalendar类。
下面来看一下具体的实现:
首先先拿到当前时间,并转换成字符串:

//获取当前时间
NSDate *date = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm"];
NSString *dateStr = [formatter stringFromDate:date];

同样也将要比较的时间(我们这里将其称为开始时间)转换成相同格式的字符串:

  //开始时间
  NSString *beginTime = dict[@"BeginTime"];

下面进入正题,比较两个时间字符串:

//计算当前时间和开始时间的差值
NSCalendar *calendar = [NSCalendar currentCalendar];
NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth
| NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
//对比时间差
NSDateComponents *component = [calendar components:unit fromDate:beginDate toDate:nowDate options:0];
NSLog(@"年差额 = %ld, 月差额 = %ld, 日差额 = %ld, 小时差额 = %ld, 分钟差额 = %ld, 秒差额 = %ld",(long)component.year,component.month,component.day,component.hour,component.minute,component.second);

这样我们就分别得到了年、月、日、时、分、秒的差额,如果你想要得到一个时间相差总额,比如说一天内两个时间点之间的总差额,你只需要进行简单的计算:component.hour *60 + component.minute即可得到两个时间总共相差的分钟数。

相关文章

网友评论

      本文标题:计算两个时间之间的差值

      本文链接:https://www.haomeiwen.com/subject/dyczxxtx.html