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

检查日期是否为同一日历日

  •  3
  • dizy  · 技术社区  · 15 年前

    有人能帮我查一下日期是否和今天一样吗?我想这需要在同一时区内,在同一天的0小时创建一个日历日,并对照它进行检查,但是到目前为止,我的尝试让我困惑的不止是什么。

    2 回复  |  直到 15 年前
        1
  •  5
  •   Chuck    15 年前

    nscalendar让你处理人类的日子。所以您可以实现一个类似这样的类别:

    @implementation NSDate (IsItToday)
    - (BOOL)isToday {
        NSUInteger desiredComponents = NSEraCalendarUnit|NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit;
        NSDateComponents *myCalendarDate = [[NSCalendar currentCalendar] components:desiredComponents fromDate:self];
        NSDateComponents *today = [[NSCalendar currentCalendar] components:desiredComponents fromDate:[NSDate date]];
        return [myCalendarDate isEqual:today];
    }
    @end
    
        2
  •  -1
  •   Nick Stamas    15 年前

    你应该好好读读这个 Dates and Times Programming Topics for Cocoa ,但类似的方法应该有效:

    NSDate *today = [NSDate date];
    NSTimeInterval difference = [today timeIntervalSinceDate:otherDate];
    NSTimeInterval secondsPerDay = 24 * 60 * 60;
    if (difference < secondsPerDay)
    {
       //same day as today
    }