Swift与OC比较之NSDateComponents

用NSDateComponents计算时间差

先来看OC

//获取日历对象
NSCalendar *cal = [NSCalendar currentCalendar];
//fromDate
NSDate *fromDate;
//toDate
NSDate *toDate;
//计算时间差
NSDateComponents *gap = [cal components:NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitMonth | NSCalendarUnitYear fromDate:fromDate toDate:toDate options:0];
//差几年
NSInteger num = [gap year];
//差几月
NSInteger num = [gap month];
//差几天
NSInteger num = [gap day];
//差几小时
NSInteger num = [gap hour];
//差几分钟
NSInteger num = [gap minute];

再来看swift

//获取日历对象
let cal = Calendar.current
//fromDate
let fromDate;
//toDate
let toDate;
//计算时间差
let gap = cal.dateComponents([Calendar.Component.day, Calendar.Component.hour, Calendar.Component.minute, Calendar.Component.month, Calendar.Component.year], from: fromDate, to: toDate)
//差几年
let num = gap.year!
//差几月
let num = gap.month!
//差几天
let num = gap.day!
//差几小时
let num = gap.hour!
//差几分钟
let num = gap.minute!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • SwiftDate概况 从Swift发布起,我们就没有放弃使用Swift。 当然,我们希望在项目能够轻松自如地管理...
    Mee_Leo阅读 13,433评论 1 13
  • #import "QLDatePicker.h" @interface QLDatePicker (){ NSIn...
    清蘂翅膀的技术阅读 3,051评论 0 0
  • 最近处理了一些关于日期的问题,先记下来,可以后来查用。 1,将字符串转化为日期 let formatter = D...
    _东阁堂主_阅读 4,487评论 0 1
  • c++中,我们对new很熟徐了,生成一个动态对象就会调用new,但是,大家真的是知道它的底层运作方式么?new操作...
    君子亮剑阅读 2,187评论 0 0
  • 跟一个老板聊天,对炒房有了更深刻的认识,即使有限购又如何,上有政策,下有对策,都有套路。底层劳动者辛辛苦苦通过劳动...
    同创时光阅读 2,801评论 0 1