代码之家  ›  专栏  ›  技术社区  ›  zs2020

仅按年月日比较nsdate对象

  •  2
  • zs2020  · 技术社区  · 14 年前

    如果我想使用比较方法比较两天:

    [day1 compare:day2] == NSOrderedAscending
    

    如何只按年月日比较?

    2 回复  |  直到 13 年前
        1
  •  4
  •   zneak    14 年前

    一天有86400秒,所以如果你得到两个日期的参考日期后的秒数,你可以将它们除以86400,然后比较这两个数字。

    这会给你 days1 days2 )自1月1日起已过去的日期的天数 ST ,1970。然后你可以比较它们。

    int days1 = [date1 timeIntervalSince1970] / 86400;
    int days2 = [date2 timeIntervalSince1970] / 86400;
    
        2
  •  0
  •   northernman    13 年前

    理想情况下,您希望编写如下内容:

    if ([date1 isSameDayAs:date2]) {...}
    

    您可以在nsdate上通过一个简单的类别来实现这一点,例如:

    @implementation NSDate (Extensions)
    - (BOOL) isSameDayAs:(NSDate *)date2
    {
        int days1 = [self  timeIntervalSince1970] / 86400;
        int days2 = [date2 timeIntervalSince1970] / 86400;
        return (days1 == days2);
    }
    @end