【问题标题】:Comparing NSDates比较 NSDates
【发布时间】:2010-04-05 07:44:09
【问题描述】:

我有一个名为“dueDate”的 NSDate 对象。我正在尝试弄清楚如何显示截止日期是昨天还是明天。我该怎么办?

【问题讨论】:

    标签: iphone objective-c compare nsdate


    【解决方案1】:

    要查看日期是否为“明天”,请执行以下操作。

        NSCalendar *calendar = [NSCalendar currentCalendar];    
        NSDate *currentDate = [NSDate date];
        NSDateComponents *comps = [[NSDateComponents alloc] init];
        // set tomorrow (0: today, -1: yesterday)
        [comps setDay:1];
        NSDate *dateTomorrow = [calendar dateByAddingComponents:comps 
                                                         toDate:currentDate  
                                                        options:0];
        [comps release];
    

    其余的应该是相当明显的。

    HTH。

    【讨论】:

      【解决方案2】:
      NSDate *today = [NSDate date];
      
      NSTimeInterval dateTime;
      
      
      if ([visitDate isEqualToDate:today])   //visitDate is a NSDate
      
      {
      
      NSLog (@"Dates are equal");
      
      }
      
      dateTime = ([visitDate timeIntervalSinceDate:today] / 86400);  
      
      if(dateTime < 0) //Check if visit date is a past date, dateTime returns - val
      
      {
      
      NSLog (@"Past Date");
      
      }
      
      else 
      
      {   
      NSLog (@"Future Date");
      
      }
      

      【讨论】:

      • "isEqualToDate:" 完全匹配。即:亚秒匹配。这个测试可能永远不会是真的。
      猜你喜欢
      • 2013-11-15
      • 1970-01-01
      • 2013-01-28
      • 2017-01-04
      • 2014-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多