 	/**
 	Return a string representation of the date where both date and time are in long style format
 	
-	- returns: date's string representation
+	:returns: date's string representation
 	*/
 	public func toLongString() -> String {
 		return toString(dateStyle: NSDateFormatterStyle.LongStyle, timeStyle: NSDateFormatterStyle.LongStyle)

			return "just now"._sdLocalize
		}
		
		let significantFlags = NSDate.componentFlags()
		let calendar : NSCalendar! = NSCalendar.currentCalendar()
		let components = calendar.components(significantFlags, fromDate: fromDate, toDate: self, options: NSCalendarOptions(rawValue: 0))
		
		var string = String()
		var isApproximate:Bool = false
		var numberOfUnits:Int = 0
		let unitList : [String] = ["year", "month", "week", "day", "hour", "minute", "second"]
		for unitName in unitList {
			let unit : NSCalendarUnit? = unitName._sdToCalendarUnit()
			if unit != nil {
				if ((significantFlags.rawValue & unit!.rawValue) != 0) &&
					(_sdCompareCalendarUnit(NSCalendarUnit.Second, other: unit!) != .OrderedDescending) {
						let number:NSNumber = NSNumber(float: fabsf(components.valueForKey(unitName)!.floatValue))
						if Bool(number.integerValue) {
							let singular = (number.unsignedIntegerValue == 1)
							let suffix = String(format: "%@ %@", arguments: [number, _sdLocalizeStringForValue(singular, unit: unit!, abbreviated: abbreviated)])
							if string.isEmpty {
								string = suffix
							} else if numberOfUnits < maxUnits {
								string += String(format: " %@", arguments: [suffix])
							} else {
								isApproximate = true
							}
							numberOfUnits += 1
						}
				}
			}
		}
		

	/**
	Compare two dates and return true if they are equals
	
	:param: date       date to compare with
	:param: ignoreTime true to ignore time of the date
	
	:returns: true if two dates are equals
	*/
	func isEqualToDate(date: NSDate, ignoreTime: Bool) -> Bool {
		if ignoreTime {
