Skip to content

Instantly share code, notes, and snippets.

@SergLam
Created November 2, 2020 12:23
Show Gist options
  • Save SergLam/a252dd01324b5e2c04ecbe79cbb6b8fb to your computer and use it in GitHub Desktop.
Save SergLam/a252dd01324b5e2c04ecbe79cbb6b8fb to your computer and use it in GitHub Desktop.
USA States names + ISO 3166-2 codes
import Foundation
// https://en.wikipedia.org/wiki/List_of_U.S._state_and_territory_abbreviations
// https://en.wikipedia.org/wiki/ISO_3166-2
// NOTE: - Last two symbols from ISO 3166-2 state code
enum USAState: Int, CaseIterable {
case alabama = 1
case alaska = 2
case arizona = 3
case arkansas = 4
case california = 5
case colorado = 6
case connecticut = 7
case delaware = 8
case districtOfColumbia = 9
case florida = 10
case georgia = 11
case hawaii = 12
case idaho = 13
case illinois = 14
case indiana = 15
case iowa = 16
case kansas = 17
case kentucky = 18
case louisiana = 19
case maine = 20
case maryland = 21
case massachusetts = 22
case michigan = 23
case minnesota = 24
case mississippi = 25
case missouri = 26
case montana = 27
case nebraska = 28
case nevada = 29
case newHampshire = 30
case newJersey = 31
case newMexico = 32
case newYork = 33
case northCarolina = 34
case northDakota = 35
case ohio = 36
case oklahoma = 37
case oregon = 38
case pennsylvania = 39
case rhodeIsland = 40
case southCarolina = 41
case southDakota = 42
case tennessee = 43
case texas = 44
case utah = 45
case vermont = 46
case virginia = 47
case washington = 48
case westVirginia = 49
case wisconsin = 50
case wyoming = 51
var displayName: String {
switch self {
case .alabama:
return "Alabama"
case .alaska:
return "Alaska"
case .arizona:
return "Arizona"
case .arkansas:
return "Arkansas"
case .california:
return "California"
case .colorado:
return "Colorado"
case .connecticut:
return "Connecticut"
case .delaware:
return "Delaware"
case .districtOfColumbia:
return "District of Columbia"
case .florida:
return "Florida"
case .georgia:
return "Georgia"
case .hawaii:
return "Hawaii"
case .idaho:
return "Idaho"
case .illinois:
return "Illinois"
case .indiana:
return "Indiana"
case .iowa:
return "Iowa"
case .kansas:
return "Kansas"
case .kentucky:
return "Kentucky"
case .louisiana:
return "Louisiana"
case .maine:
return "Maine"
case .maryland:
return "Maryland"
case .massachusetts:
return "Massachusetts"
case .michigan:
return "Michigan"
case .minnesota:
return "Minnesota"
case .mississippi:
return "Mississippi"
case .missouri:
return "Missouri"
case .montana:
return "Montana"
case .nebraska:
return "Nebraska"
case .nevada:
return "Nevada"
case .newHampshire:
return "New Hampshire"
case .newJersey:
return "New Jersey"
case .newMexico:
return "New Mexico"
case .newYork:
return "New York"
case .northCarolina:
return "North Carolina"
case .northDakota:
return "North Dakota"
case .ohio:
return "Ohio"
case .oklahoma:
return "Oklahoma"
case .oregon:
return "Oregon"
case .pennsylvania:
return "Pennsylvania"
case .rhodeIsland:
return "Rhode Island"
case .southCarolina:
return "South Carolina"
case .southDakota:
return "South Dakota"
case .tennessee:
return "Tennessee"
case .texas:
return "Texas"
case .utah:
return "Utah"
case .vermont:
return "Vermont"
case .virginia:
return "Virginia"
case .washington:
return "Washington"
case .westVirginia:
return "West Virginia"
case .wisconsin:
return "Wisconsin"
case .wyoming:
return "Wyoming"
}
}
var stateCode: String {
switch self {
case .alabama:
return "AL"
case .alaska:
return "AK"
case .arizona:
return "AZ"
case .arkansas:
return "AR"
case .california:
return "CA"
case .colorado:
return "CO"
case .connecticut:
return "CT"
case .delaware:
return "DE"
case .districtOfColumbia:
return "DC"
case .florida:
return "FL"
case .georgia:
return "GA"
case .hawaii:
return "HI"
case .idaho:
return "ID"
case .illinois:
return "IL"
case .indiana:
return "IN"
case .iowa:
return "IA"
case .kansas:
return "KS"
case .kentucky:
return "KY"
case .louisiana:
return "LA"
case .maine:
return "ME"
case .maryland:
return "MD"
case .massachusetts:
return "MA"
case .michigan:
return "MI"
case .minnesota:
return "MN"
case .mississippi:
return "MS"
case .missouri:
return "MO"
case .montana:
return "MT"
case .nebraska:
return "NE"
case .nevada:
return "NV"
case .newHampshire:
return "NH"
case .newJersey:
return "NJ"
case .newMexico:
return "NM"
case .newYork:
return "NY"
case .northCarolina:
return "NC"
case .northDakota:
return "ND"
case .ohio:
return "OH"
case .oklahoma:
return "OK"
case .oregon:
return "OR"
case .pennsylvania:
return "PA"
case .rhodeIsland:
return "RI"
case .southCarolina:
return "SC"
case .southDakota:
return "SD"
case .tennessee:
return "TN"
case .texas:
return "TX"
case .utah:
return "UT"
case .vermont:
return "VT"
case .virginia:
return "VA"
case .washington:
return "WA"
case .westVirginia:
return "WV"
case .wisconsin:
return "WI"
case .wyoming:
return "WY"
}
}
var isoStateCode: String {
switch self {
default:
return "USA-\(self.stateCode)"
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment