比较两个日期

在应用中至少有两个日期,你想知道他们的关系,或者通过比较两个日期,用于显示个性化的日期格式,例如:微信的几天前,几小时前等。

对于简单的比较来说,可以使用内置的NSDate比较函数。如果想知道从某个日期到某个日期一共有多少天,需要有指向系统日历的引用和两个日期。

例如

NSDate * todayDate = [NSDate date];//今天的日期


判断某个日期是不是今天    if  (  [todayDate isEqualToDate:someDay  ]  )  {

                                                }//返回一个布尔值

判断某个日期是不是早于今天  if   ( [todayDate  laterDate:someDay] ){

                                                }}//返回一个布尔值


判断某个日期是否晚于今天  if   ( [todayDate  earlierDate: someDay] ){

                                                }}//返回一个布尔值


要想获得两个日期之间相差的秒数,请使用timeIntervalSinceDate:函数并将第二个日期作为参数传递过来。函数的返回值是一个双精度浮点数,就是两个日期相差的秒数。可以通过系统日历与NSDateComponents类获得关于日期比较的更详细信息,这会以你需要的格式返回两个日期相差的时间。因此,如果想要知道天数、小时数、分钟数、年数、月数或是其中的组合。


1、首先获得指向用户系统日期的引用:

         NSCalendar * systemCalendar = [NSCalender currentCalendar];

2、通过对NSCalender常量进行按位或运算来指定采用的时间单位:

         unsigned int unitFlags = NSYearCalendarUnit |  NSMonthCalendarUnit   |   NSDayCalendarUnit  ;

       跟多可以使用的常量有:

        NSEraCalendarUnit                             指定纪元

        NSYearCalendarUnit                            指定年

        NSMonthCalendarUnit                         指定月

        NSDayCalendarUnit                             指定天

        NSHourCalendarUnit                           指定小时

        NSMinuteCalendarUnit                        指定分钟

         NSSecondCalendarUnit                     指定秒数

        NSWeekCalenderUnit                          指定周

        NSWeekdayCalendarUnit                   指定工作日


3、通过NSCalendar的comPonents:fromDate:toDate:options:函数来返回NSdateComponents对象,对象中的数据秒数了根据指定的NSCalender常量,计算得出两个日期的时间差。可以访问相应的属性获得所需的信息。

      例如:NSDateComponents  * dateComparison = [systemCalendar  components:unitFlags    fromDate:someDay    toDate:todayDate  options:NSWrapCalendarComponents];

              dateComparion.year   ,dateComparison.month,  dateComparison.day 获得相应的间隔的年月日,同样,也可以获得时分秒。




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值