JWIDROFF
JWIDROFF

Reputation: 5

Turning an Int into a String

I'm pretty new to swift (and programming altogether). I'm trying to convert an Int into a String. I've tried using switch statements but every time I use them, it never changes to the String (AKA it prints the number 4) An example of what I'm trying to do is as follows:

class Birthday(_ month: Int, _ day:Int, _ year:Int) -> String{
    //Here is where I'd like to turn my month into April

    Return (month)
}

let example = Birthday()

example(4,15,1988)

Upvotes: 0

Views: 140

Answers (3)

hoshy
hoshy

Reputation: 563

Simple solution to get you started would be a method that takes an integer and return your month string.

func numberToMonth(number: Int) -> String {

    guard number > 0, number < 13 else { return "" }
    return DateFormatter().monthSymbols[number-1]
}

Upvotes: 0

rmaddy
rmaddy

Reputation: 318774

If you really just want to get a month name from a month number, you can do the following:

let formatter = DateFormatter()
let monthName = formatter.monthSymbols[month - 1] // Assuming 1 means January

But since you are passing in a month, day, and year, you presumably want to create a Date and then you want to format that Date into a `String.

Create a Date using Calendar and DateComponents.

let date = Calendar.current.date(from: DateComponents(year: year, month: month, day: day))

Then you format the Date into a String using DateFormatter.

let formatter = DateFormatter()
formatter.dateStyle = .long // choose a desired style
formatter.timeStyle = .none
let string = formatter.string(from: date)

Upvotes: 4

swigganicks
swigganicks

Reputation: 1231

You can use a dictionary which maps objects to each other. For example, a months dictionary could look like:

let months: [Int:String] = [1:"January", 2:"February",...]
return months[4] // returns "April"

Upvotes: 0

Related Questions