// Copyright © 2018 Inanc Gumus // Learn Go Programming Course // License: https://creativecommons.org/licenses/by-nc-sa/4.0/ // // For more tutorials : https://learngoprogramming.com // In-person training : https://www.linkedin.com/in/inancgumus/ // Follow me on twitter: https://twitter.com/inancgumus package main import ( "fmt" "os" "strings" "time" ) // --------------------------------------------------------- // EXERCISE: Days in a Month // // Refactor the previous exercise from the if statement // section. // // "Print the number of days in a given month." // // Use a switch statement instead of if statements. // --------------------------------------------------------- func main() { if len(os.Args) != 2 { fmt.Println("Give me a month name") return } year := time.Now().Year() leap := year%4 == 0 && (year%100 != 0 || year%400 == 0) days, month := 28, os.Args[1] if m := strings.ToLower(month); m == "april" || m == "june" || m == "september" || m == "november" { days = 30 } else if m == "january" || m == "march" || m == "may" || m == "july" || m == "august" || m == "october" || m == "december" { days = 31 } else if m == "february" { if leap { days = 29 } } else { fmt.Printf("%q is not a month.\n", month) return } fmt.Printf("%q has %d days.\n", month, days) }