         return lhs.yearForWeekOfYear == rhs.yearForWeekOfYear && lhs.weekOfYear == rhs.weekOfYear
     }
     
+    // MARK: - Conversion
+    
     func toLocalTime() -> NSDate {
         let seconds = NSTimeZone.localTimeZone().secondsFromGMTForDate(self)
         return self.addSeconds(seconds)


public extension NSDate {
    
    var seconds: Int {
        return NSCalendar.currentCalendar().component(.CalendarUnitSecond, fromDate: self)
    }
    
    func add(seconds: Int = 0, minutes: Int = 0, hours: Int = 0, days: Int = 0, weeks: Int = 0, months: Int = 0, years: Int = 0) -> NSDate {
        var calendar = NSCalendar.currentCalendar()

        return NSCalendar.currentCalendar().components(.CalendarUnitYear, fromDate: self, toDate: date, options: nil).year
    }
    
    // MARK: - Validation
    
    func isAfter(date: NSDate) -> Bool {
        return (self.compare(date) == NSComparisonResult.OrderedDescending)
    }
