     
         :param: date The date for which to calculate the beginning of the month
     
-        :returns: The newly created date representing the first second of the 
-            month
+        :returns: The newly created date representing the first second of the month
     */
     private func beginningOfMonth(date:NSDate) -> NSDate {
         let components = self.calendar.components((NSCalendarUnit.CalendarUnitYear | NSCalendarUnit.CalendarUnitMonth), fromDate: date)

    
    
// MARK: - Build time units
    
    /**
        Creates an array of dates at the first second of each hour of the day of

// MARK: - Calculate beginning of time unit
    
    /**
        Creates a new date at the first second of the same hour as the given date
    
        :param: date The new date for which to calculate the beginning of the hour
    
        :returns: The newly created date representing the first second of the hour
    */
    private func beginningOfHour(date:NSDate) -> NSDate {
        let components = self.calendar.components(
            (NSCalendarUnit.CalendarUnitYear | NSCalendarUnit.CalendarUnitMonth | NSCalendarUnit.CalendarUnitDay | NSCalendarUnit.CalendarUnitHour), fromDate: date
        )
        
        return self.calendar.dateFromComponents(components)!
    }
    
    /**
        Creates a new date at the first second of the same day as the given date
    
        :param: date The date for which to calculate the beginning of the day
    
        :returns: The newly created date representing the first second of the day
    */
    private func beginningOfDay(date:NSDate) -> NSDate {
        let components = self.calendar.components(
