Removed excess white-space and type declarations

This commit is contained in:
Caleb Kleveter 2018-05-29 08:43:12 -05:00
parent 14b6e8d69e
commit 22ba8fec03
No known key found for this signature in database
GPG Key ID: B38DBD5CF2C98D69
1 changed files with 22 additions and 38 deletions

View File

@ -10,10 +10,10 @@ import Foundation
extension String { extension String {
public func swiftyTime() -> TimeInterval { public func swiftyTime() -> TimeInterval {
let pm = self.contains("pm")
var hour: Double = 0 var hour: Double = 0
var minute: Double = 0 var minute: Double = 0
var second: Double = 0 var second: Double = 0
let pm: Bool = self.contains("pm")
var offset: Double = 0 var offset: Double = 0
var cleanedTime = replacingOccurrences(of: "am", with: "").replacingOccurrences(of: "pm", with: "").replacingOccurrences(of: " ", with: "").replacingOccurrences(of: "Z", with: "") var cleanedTime = replacingOccurrences(of: "am", with: "").replacingOccurrences(of: "pm", with: "").replacingOccurrences(of: " ", with: "").replacingOccurrences(of: "Z", with: "")
@ -30,12 +30,11 @@ extension String {
if (intervalParts.count > 2) { if (intervalParts.count > 2) {
offset = offset + intervalParts[2] offset = offset + intervalParts[2]
} }
} } else {
else {
offset = (Double(timeParts[1]) ?? 0) * sign offset = (Double(timeParts[1]) ?? 0) * sign
} }
} }
let parts:[Double] = cleanedTime.split(separator: sep).compactMap(Double.init) let parts = cleanedTime.split(separator: sep).compactMap(Double.init)
if (parts.count > 0) { if (parts.count > 0) {
hour = parts[0] hour = parts[0]
} }
@ -65,8 +64,7 @@ extension String {
day = parts[0] day = parts[0]
month = parts[1] month = parts[1]
year = parts.last! year = parts.last!
} } else if (parts.count == 2) {
else if (parts.count == 2) {
// checking if the later number is a year (>12 or 4-digits) // checking if the later number is a year (>12 or 4-digits)
if (parts.last! > 12) { if (parts.last! > 12) {
year = parts.last! year = parts.last!
@ -77,28 +75,25 @@ extension String {
day = parts[0] day = parts[0]
} }
} }
} } else if (contains("-") || contains("/")) {
else if (contains("-") || contains("/")) {
var sep: Character = "-" var sep: Character = "-"
if (contains("/")) { if (contains("/")) {
sep = "/" sep = "/"
} }
let usWay = contains("/") let usWay = contains("/")
let parts:[Int] = split(separator: sep).map { Int($0) ?? 0} let parts = split(separator: sep).map { Int($0) ?? 0}
let isoOrder: Bool = parts[0] > 12 && parts[1] < 13 let isoOrder = parts[0] > 12 && parts[1] < 13
if (parts.count == 3) { if (parts.count == 3) {
let reverseIsoOrder: Bool = !usWay && parts[2] > 12 && parts[1] < 13 let reverseIsoOrder = !usWay && parts[2] > 12 && parts[1] < 13
if (isoOrder) { if (isoOrder) {
year = parts[0] year = parts[0]
month = parts[1] month = parts[1]
day = parts[2] day = parts[2]
} } else if (reverseIsoOrder) {
else if (reverseIsoOrder) {
year = parts[2] year = parts[2]
month = parts[1] month = parts[1]
day = parts[0] day = parts[0]
} } else {
else {
if (usWay) { if (usWay) {
day = parts[1] day = parts[1]
month = parts[0] month = parts[0]
@ -109,24 +104,20 @@ extension String {
} }
year = parts.last! year = parts.last!
} }
} } else if (parts.count == 2) {
else if (parts.count == 2) {
if (isoOrder) { if (isoOrder) {
year = parts[0] year = parts[0]
month = parts[1] month = parts[1]
} } else {
else {
// checking if the later number is a year (>12 or 4-digits) // checking if the later number is a year (>12 or 4-digits)
if (parts.last! > 12) { if (parts.last! > 12) {
year = parts.last! year = parts.last!
month = parts[0] month = parts[0]
} } else {
else {
if (usWay) { if (usWay) {
day = parts.last! day = parts.last!
month = parts[0] month = parts[0]
} } else {
else {
month = parts.last! month = parts.last!
day = parts[0] day = parts[0]
} }
@ -134,13 +125,11 @@ extension String {
} }
} }
} } else {
else {
let intValue = Int(self) ?? 0 let intValue = Int(self) ?? 0
if (self.count == 4 || intValue > 12) { if (self.count == 4 || intValue > 12) {
year = intValue year = intValue
} } else {
else {
month = intValue month = intValue
} }
} }
@ -156,19 +145,17 @@ extension String {
return components.date! return components.date!
} }
public func swiftyDateTime(calendar: Calendar = Calendar.current, baseDate: Date = Date()) -> Date? { public func swiftyDateTime(calendar: Calendar = Calendar.current, baseDate: Date = Date()) -> Date? {
if (self == "") { return nil }
var time: TimeInterval = 0 var time: TimeInterval = 0
var date: Date? var date: Date?
if (self == "") {
return nil
}
// cleaning // cleaning
let cleanString = replacingOccurrences(of: " am", with: "am").replacingOccurrences(of: " pm", with: "pm") let cleanString = replacingOccurrences(of: " am", with: "am").replacingOccurrences(of: " pm", with: "pm")
// check for iso 8601 (yyyy-MM-ddTHH:mm:ss.SSZ) // check for iso 8601 (yyyy-MM-ddTHH:mm:ss.SSZ)
if (cleanString.contains("T")) { if (cleanString.contains("T")) {
let parts:[String] = split(separator: "T").map { String($0)} let parts:[String] = split(separator: "T").map(String.init)
date = parts[0].swiftyDate() date = parts[0].swiftyDate()
time = parts[1].swiftyTime() time = parts[1].swiftyTime()
} }
@ -176,16 +163,13 @@ extension String {
if let pos = index(of: " ") { if let pos = index(of: " ") {
date = String(self[..<pos]).swiftyDate() date = String(self[..<pos]).swiftyDate()
time = String(self[pos...]).swiftyTime() time = String(self[pos...]).swiftyTime()
} } else {
else {
date = swiftyDate() date = swiftyDate()
} }
} } else if (cleanString.contains(":") || cleanString.contains("pm") || cleanString.contains("am")) { // if we have a ":" it is most likely a time
else if (cleanString.contains(":") || cleanString.contains("pm") || cleanString.contains("am")) { // if we have a ":" it is most likely a time
date = calendar.date(from: calendar.dateComponents([.year, .month, .day], from: baseDate))! date = calendar.date(from: calendar.dateComponents([.year, .month, .day], from: baseDate))!
time = swiftyTime() time = swiftyTime()
} } else {
else {
date = swiftyDate() date = swiftyDate()
} }
if (date == nil) { if (date == nil) {