         return dateStringFormatter.stringFromDate(self)
     }
     
+    /**
+     *  Compare two dates
+     *
+     *  @param anotherDate  date to compare
+     *
+     *  @return enum `NSDateCompare`
+     */
     public func compareTo(anotherDate:NSDate) -> NSDateCompare {
         
         let comparation = self.compare(anotherDate)

extension NSDate {
    
    // MARK: Public
    public func addSeconds(second:Int) -> NSDate {
        return addTime(year: 0, month: 0, hour: 0, minute: 0, second: second)
    }
    
    public func addMinutes(minutes:Int) -> NSDate {
        return addTime(year: 0, month: 0, hour: 0, minute: minutes, second: 0)
    }
    
    public func addHours(hours:Int) -> NSDate {
        return addTime(year: 0, month:0, hour:hours, minute:0, second:0)
    }
    
    public func addMonths(month:Int) -> NSDate {
        return addTime(year: 0, month:month, hour:0, minute:0, second:0)
    }
    
    public func addYears(year:Int) -> NSDate {
        return addTime(year:year, month:0, hour:0, minute:0, second:0)
    }

    }
    
    // MARK: Initialize
    
   /**
    *  Create `NSDate` base on time interval
    *
    *  @param timeInterval      The time interval valid
    *
    *  @return A `NSDate` valid
    */
    public convenience init(timeInterval:Int64) {
        let date = NSDate(timeIntervalSince1970:NSTimeInterval(timeInterval/1000))
        self.init(timeIntervalSinceNow:date.timeIntervalSinceNow)
    }
    
    /**
     *  Create `NSDate`
     *
     *  @param year     Year of the new date
     *  @param month    Month of the new date
     *  @param day      Day of the new date
     *  @param hour     Hour of the new date
     *  @param minute   Minute of the new date
     *  @param second   Second of the new date
     *
     *  @return A `NSDate` valid
     */
    public convenience init(year:Int, month:Int, day:Int, hour:Int, minute:Int, second:Int){
        let date = NSDate.createDate(year: year, month: month, day: day, hour: hour, minute: minute, second: second)
        self.init(timeIntervalSinceNow:date.timeIntervalSinceNow)
    }
    
    /**
     *  Create `NSDate`
     *
     *  @param year     Year of the new date
     *  @param month    Month of the new date
     *  @param day      Day of the new date
     *  @param hour     Hour of the new date
     *  @param minute   Minute of the new date
     *
     *  @return A `NSDate` valid
     */
    public convenience init(year:Int, month:Int, day:Int, hour:Int, minute:Int){
        let date = NSDate.createDate(year: year, month: month, day: day, hour: hour, minute: minute, second: 0)
        self.init(timeIntervalSinceNow:date.timeIntervalSinceNow)

    }
    
    /**
     *  Create `NSDate`
     *
     *  @param year     Year of the new date
     *  @param month    Month of the new date
     *  @param day      Day of the new date
     *
     *  @return A `NSDate` valid
     */
    public convenience init(year:Int, month:Int, day:Int){
        let date = NSDate.createDate(year: year, month: month, day: day, hour: 0, minute: 0, second: 0)
        self.init(timeIntervalSinceNow:date.timeIntervalSinceNow)
